目录
细节3:实例化instance的脚本需要挂载到场景中的物体中,不然无法调取
细节4:GetComponentsInChildren获取不到隐藏物体?
细节9:Button等组件的Target Graphic可能设置错误
不注意细节,找bug到崩溃。——Nobody
细节1:监听事件居然有顺序?
button.onClick.AddListener(a);
button.onClick.AddListener(b);
如上代码,这时候事件执行顺序是a→b。
button.onClick.AddListener(b);
button.onClick.AddListener(a);
上述代码事件执行顺序是b→a。
多个事件执行并非同时发生,而是有顺序的。
细节2:StopCoroutine并不能停止协程?
StopCoroutine(ie());
该代码并不能停止协程ie(),因为相当于重新调用了一遍ie()。
能正常停止的开始/停止方式:
//方法一:直接引用名字
StartCoroutine("ie");//开始协程
StopCoroutine("ie");//停止协程
//方法二:用变量控制
Coroutine a;
a = StartCoroutine(ie());//开始协程
StopCoroutine(a);//停止协程
细节3:实例化instance的脚本需要挂载到场景中的物体中,不然无法调取
且需要如下代码才能实例化。
private static 脚本名称 _instance;
public static 脚本名称 Instance
{
get//获取
{
return _instance;
}
}
void Awake()
{
_instance = this;
}
细节4:GetComponentsInChildren获取不到隐藏物体?
解决方法:
GetComponentsInChildren<T>(true);
细节5:Animator窗口的状态机没有进度条
需要选中装有该状态机的物体才有进度条
细节6:动画自动播放/播放了不正确的动画
检查conditions的值是否正确。如果设置了x=1时跳转该动画,而在动画结束未重设x的值,则会一直循环进入该动画。
conditions位置:
细节7:运行失败,可能是因为脚本忘记挂载到物体上
细节8:两个模型动画不同步/播完后有延迟
前提:美术组那边提供的动画是分别捆绑在两个模型上的,然而要使用状态机进行动画实时演出
修改方式:
1.在状态机的节点中修改这两个参数,取消延迟时间
2.有可能是帧数问题,一个24帧一个60帧
3.如果两个动画帧数没问题,有可能是退出时间不一样(0.94代表运行到94%时退出动画)
4.如果以上都没问题,可能是曲线被压缩,应该改成以下
细节9:Button等组件的Target Graphic可能设置错误
细节10:改变材质的代码不起效
可能是因为状态机中存在该材质相关的动画控制,去掉动画即可