读一读

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相同,这个方法比用双=好比较更有效率


Instantiate(prefab,位置,旋转);
//Quaternion.identity表示不旋转初始值

无论实例化的是prefab的组件还是GameObject,都是这个GameObject


声明方法,只能指定根目录下的物体

DontDestroyOnLoad();
//GameObject在加载下一个场景的时保留下来,不销毁,不可以是子物体,可以是组件(它的物体将保存)

Destroy();//删除GameObject,Script,组件等,第二个参数为秒,n秒后删除销毁
DestroyImmediate();//第二个参数可以指定true将资源删除,直接销毁


Destroy()标志删除,下一帧或则几秒后才是真的删除。


World,Screen,Viewport

  1. 世界坐标  三维

  2. 屏幕和视图z轴都为0,视图为(0,0)~(1,1)

互相转换使用Camera类