开发环境:Windows Unity3d
制作目标:按某键,下拉出UI提示板。
笨拙方法1:
制作UI提示板的下移特效,我把初始化的放在Start()方法中,Update()中写特效的代码。如果是场景A只显示一次,跳转到其他场景B,再次返回该场景A的时候,就无法显示下拉的特效。
因为Start()方法,官方的表述是
Start is called just before any of the Update methods is called the first time.
Start仅在Update函数第一次被调用前调用。
Start is only called if the script instance is enabled.
我的理解是,Start只是在脚本实例可用的时候被调用,实际上,一个脚本实例不可能终生只被调用一次,会出现多次启动“可用”,即Enable,
准确地说是:Start()的生命周期是一辈子只调用一次,所以再次返回场景A中的时候,Start()方法不会被再次调用,自然没有特效显示。
解决办法:
如果把初始化放到OnEnable()方法中,官方解释:This function is called when the object becomes enabled and active.
当对象变为可用或激活状态时此函数被调用。
UI提示板再次被激活后SetActive(true)后,就会执行初始化,这样UI提示板的特效就出来了。
超简洁方法2:
亲,Unity3d自带的Animation功能的,点选要编辑的物件,工具栏的Window -> Animation即可跳出一个动画编辑窗口,至于如何操作可以参考雨松的博文