U3D 0822 碰撞体触发
来源:互联网 发布:乐视网络电视app 编辑:程序博客网 时间:2024/06/03 19:01
动作系统
模型推荐格式 FBX
Animation组件
面板
- 旧动画系统组件
属于新动画系统的子集
使用帧动画
Rig标签下选择Legacy
参数
- Animation 默认播放的动画片段
Animations 所有可以播放的动画片段
Play Automatically 勾选后,游戏开始自动播放
Animate Physics 是否参与物理运动
Cull Type 什么时候渲染
Allways
Based On Renderers 摄像机能看到时渲染
Animation m_pAni;
m_fAni.CrossFade("Walk");动画过度,避免卡顿现象
方法 bool Play("动画片段的名称");
bool Play("动画片段的名称",PlayMode.StopAll);
bool CrossFade("动画片段的名称",int fadeLenth );百分比融合 ,从后面算
bool CrossFadeQueued("动画片段的名称",int fadeLength,QueueMode);
AnimationState this(string name);
PlayMode 枚举
StopAll
StopSameLayer
QueueMode
CompleteOthers
PlayNo
StopAll
StopSameLayer
AnimationState
- name 动画片段
clip 动画片段
length 动画片段长度
speed 动画片段播放的速度 >1加速播放 0~1减速播放
Animator 新动画组件
在模型面板中 修改缩放
根节点
using UnityEngine;using System.Collections;public class playanimation : MonoBehaviour { Animation m_pAni; ENUM_MOUSTER_STATE m_emState= ENUM_MOUSTER_STATE.stand ; CharacterController m_pController; private float m_pVectical; private float m_pHorizontal; public float m_pMoveSpeed =30.0f; public float m_pRotSpeed = 2f; void Awake(){ m_pAni = GetComponent<Animation> (); m_pController = GetComponent<CharacterController> (); } // Use this for initialization void Start () { m_pAni.Play (ENUM_MOUSTER_STATE.stand.ToString ()); } // Update is called once per frame void Update () { m_pVectical = Input.GetAxis ("Vertical"); m_pHorizontal = Input.GetAxis ("Horizontal"); if (m_pVectical > 0) { m_pController.SimpleMove(transform.forward*m_pMoveSpeed*Time.deltaTime); ChangeStateTo(ENUM_MOUSTER_STATE.walk); } transform.Rotate (0, m_pHorizontal * Time.time * m_pRotSpeed,0); if (Input.GetKeyDown (KeyCode.Space)) { ChangeStateTo(ENUM_MOUSTER_STATE.atk1); } if (Input.GetKeyDown (KeyCode.Alpha0)) { ChangeStateTo(ENUM_MOUSTER_STATE.death); } if (Input.GetKeyDown (KeyCode.Alpha3)) { ChangeStateTo(ENUM_MOUSTER_STATE.run); } if (!m_pAni.isPlaying) { ChangeStateTo(ENUM_MOUSTER_STATE.stand); } } void ChangeStateTo(ENUM_MOUSTER_STATE emState){ Debug.Log(m_emState.ToString()); if (emState == m_emState) { Debug.Log(m_emState.ToString()); if (m_emState == ENUM_MOUSTER_STATE.atk1){ Debug.Log(m_emState.ToString()); m_pAni.CrossFadeQueued ("atk2", 03f, QueueMode.CompleteOthers); m_emState =ENUM_MOUSTER_STATE.atk2; Debug.Log(m_emState.ToString()); } return; } if (!m_pAni.IsPlaying(emState.ToString())) { Debug.Log(m_emState.ToString()); m_pAni.CrossFade(emState.ToString(),0.3f,PlayMode.StopSameLayer); m_emState= emState; Debug.Log(m_emState.ToString()); } }}public enum ENUM_MOUSTER_STATE{ walk, run, aida, stand, atk1, atk2, fly, getup, death}
地扎using UnityEngine;using System.Collections;public class crush : MonoBehaviour { Animation m_pAnimation; ENUM_UPorDown m_pState; void Awake(){ m_pAnimation = GetComponent<Animation> (); } // Use this for initialization void Start () { } // Update is called once per frame void Update () { } void OnTriggerEnter(){ m_pAnimation.Play (ENUM_UPorDown.Up.ToString()); } void OnTriggerExit(){ m_pAnimation.Play (ENUM_UPorDown.Down.ToString()); }}public enum ENUM_UPorDown{ Up, Down}
0 0
- U3D 0822 碰撞体触发
- U3D的碰撞(Collision)和触发(Trigger)
- U3D 碰撞 认识
- U3d刚体,碰撞,触发器
- U3D中的碰撞问题
- u3d添加碰撞
- Unity关于MeshCollider碰撞体无法触发碰撞事件
- u3d物体反弹碰撞知识
- Unity3D【碰撞与触发】
- 2.7.2 触发碰撞
- 碰撞触发区别
- 8.31碰撞触发
- 碰撞触发的区别
- Unity 碰撞与触发
- 碰撞与触发事件
- 碰撞体(Collider)以及触发器(Is Trigger)----碰撞的条件,触发碰撞器和触发器的条件
- u3d中刚体与碰撞体的理解以及is Trigger属性的意义
- U3d学习第二天--碰撞体的添加、树和草的可视化距离及密度
- cocoapods使用中出现的问题(Mark)
- Web前端总结-----CSS基础详解(一)
- Spring MVC 跳转问题
- 10 Minutes to pandas----十分钟搞定Pandas
- MOS管驱动电路——电机干扰与防护处理
- U3D 0822 碰撞体触发
- 双边过滤算法的hlsl实现
- HDU4296
- swift WKWebView 某些网址无法加载
- 漫步微积分二十四——定积分引言
- Alcatraz插件管理工具
- javascript设计模式-singleton(单例)模式
- C# 枚举
- 使用开源库 MagicalRecord