每次Update之前都要初始化一次怎么处理!

开发环境: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即可跳出一个动画编辑窗口,至于如何操作可以参考雨松的博文

http://www.xuanyusong.com/archives/2246
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值