Unity update里物体每次被激活时,执行一次代码

voidUpdate(){if(transform.parent.gameObject.activeSelf&&once){//人物复位once是一个bool,初值为tr... 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))
展开
 我来答
home终结者
2015-09-07 · TA获得超过193个赞
知道小有建树答主
回答量:140
采纳率:50%
帮助的人:109万
展开全部
你可以在代码里定义四个gameobject专门拿吵山纤来存好ABCD四个人,再定义四个变量专唯镇门拿来存好每个人的初始旋转(方便后面还原);
当你选了A并且旋转了之后,再去选择其他的同时,执行一个函数,在那个函数里把ABCD四个人物都还原到初始旋转就可以了(记住这个升仿还原所有人物旋转的函数只在切换角色时调用)。
百度网友3873e0eac
2019-12-19
知道答主
回答量:2
采纳率:0%
帮助的人:1400
展开全部
Unity生命周期函数里拆逗有的
在Awake()之后旅氏卖
OnEnable() 每次脚本被激核春活时调用一次

在Start() 之前
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sorrytoyoukq
推荐于2018-03-26 · TA获得超过120个赞
知道小有建树答主
回答量:107
采纳率:100%
帮助的人:79.2万
展开全部
很简单,有个方法名叫OnEnable(),建议你看看
追问
OnEnable()的话~~在Update里还是。。。。算了,我用itween做了~~
追答
不不不  是与update同级的一个函数,你去查一查 很方便的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式