Unity update里物体每次被激活时,执行一次代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity update里物体每次被激活时,执行一次代码相关的知识,希望对你有一定的参考价值。
void Update ()
if (transform.parent.gameObject.activeSelf && once) //人物复位 once是一个bool,初值为true
transform.eulerAngles = new Vector3(0, 180, 0);
once = false;
//我这个逻辑是不对的,我想每次物体的activeSelf为true时,都执行一次代码,并且只执行一次,
if (Input.GetMouseButton(1)) //控制人物旋转
transform.Rotate(Vector3.up * speed, -Input.GetAxis("Mouse X"));
代码如上:
1概要是:我在做一个人物选择界面,4个人物,选A时,BCD隐藏,按右键可以旋转,
2问题是:当我旋转A后,再去选择其他的,,,当返回A时,A还是停留在原来旋转那个位子(比如转到背面,再回来时,它就是背对我),
3要求是:无论A被转到什么角度,返回时(再次被激活时),都会回到一个默认角度(比如(0,0,0))
当你选了A并且旋转了之后,再去选择其他的同时,执行一个函数,在那个函数里把ABCD四个人物都还原到初始旋转就可以了(记住这个还原所有人物旋转的函数只在切换角色时调用)。 参考技术A Unity生命周期函数里有的
在Awake()之后
OnEnable() 每次脚本被激活时调用一次
在Start() 之前 参考技术B 很简单,有个方法名叫OnEnable(),建议你看看追问
OnEnable()的话~~在Update里还是。。。。算了,我用itween做了~~
追答不不不 是与update同级的一个函数,你去查一查 很方便的
本回答被提问者采纳Unity脚本生命周期
1.Awake
只会被调用一次,在Start方法之前被调用。
2.OnEnable
脚本激活时候被调用,当脚本禁用后重新激活会再次调用。(挂载该脚本的游戏对象,隐藏后再次显示会调用)
3.Start
只执行一次,在Awake方法执行结束后执行,但在Update方法执行前执行, 主要用于程序UI的初始化操作,比如获取游戏对象或者组件。
4.FixedUpdate
固定频率刷新,默认0.02s执行一次,1秒执行50次。(刷新频率可在Edit--->Project Settings--->Time面板中的Fixed Timestep中更改)
5.Update
每一帧执行一次,会受到游戏流畅度的影响,如果游戏流畅执行的频率就高,如果游戏卡顿执行的频率就低。
6.LateUpdate
Update方法执行完,必定接着执行LateUpdate。
7.OnGUI
在这里面进行GUI的绘制,且GUI是每帧擦除重绘的!仅仅只是绘制!没有生命周期的概念!所有关于绘制GUI的代码,都要直接或者间接地写到OnGUI方法中!
8.OnDisable
脚本禁用时候被调用,当脚本激活后重新禁用会再次调用。
9.OnDestroy
当前脚本销毁时调用
以上是关于Unity update里物体每次被激活时,执行一次代码的主要内容,如果未能解决你的问题,请参考以下文章