读一读

Animation View中可以在动画的某一时刻点击Add Animation Event,选择一个方法。当动画播放到那个时刻,就会调用这个方法。

也可以在Animation资源中直接添加,手动输入方法名。


可以修改的类型

Float,Color,Vector2,Vector3,Vector4,

Quaternion,Boolean

Animation Curve控制过度,右键加key

RootMotion 应用后则会相对自身坐标运动,否则参照世界坐标


Animation资源

Animation Clip、Animation


Mecanim

Animator为状态机系统文件,包含多个Animation


  1. Asset Store

  2. 模型资源论坛(cgmodel.cn)

  3. www.mixamo.com(最全的动画库)


Animator 动画状态机

Avatar 替身

Blend Tree 融合动画

Layer 分层动画实现多个部分不影响

IK逆向定位可以绑定其他物体


项目代码的调试:Console控制台,GUI,GUILayout,Debug.DrawLine()或OnDrawGizmos,MonoDevelop测试工具,Log File日志,UnityTestTool单元测试插件


ctrl s 保存

ctrl 滚轮  方法缩小代码

ctrl  f,f12   搜索

Alt 上下  移动代码上下行

ctrl alt end/home 缩进


StartCoroutine(方法)

将复杂的工作分为几帧过多次来执行

IEnumerator go(){
    yield return null;//停止一帧
    yield return new WaitForSeconds(2f);//等待两秒再往下
    yield return new WaitForFixedUpdate();//等待所有物理Update完成后
}

//调用和停止方法
StartCoroutine(go());
StartCoroutine("go");
StopAllCoroutine();
StopCoroutine("go");

Invoke(string method,float time);//延迟执行程序
InvokeRepeating(method,time,repeatRate);//time为延迟多少时间执行,repeatRate多少秒重复
IsInvoke(method);//判断是否在运行
CancleInvoke(method);

以游戏时间为准,受时间缩放的影响


Component.SendMessage(string methodName,~);

SendMessageUpward 向自己和所有父对象搜索方法调用

BroadCastMessage 向物体和其所有子物体搜索方法调用

性能不好,用的反射


Component.CompareTag("tag")

比较本组件的标签是否与tag相同,这个方法比用双=好比较更有效率