Unity3D中的SetActive()与OnEnable()、OnDisable()要注意的

更新时间:2023-06-10 01:35:44 阅读: 评论:0

工人用英语怎么说Unity3D中的SetActive()与OnEnable()、OnDisable()要注意的
⼀、
Unity 3D中的 GameObject.SetActive() 与 MonoBehaviour.OnEnable()、MonoBehaviour.OnDisable()
其实这三之前的关系很简单:
SetActive(true),很触发MonoBehaviour.OnEnable()事件,就算对象之前本就是activeSelf==true,事件依然会发⽣;
SetActive(fal),很触发MonoBehaviour.OnDisable()事件,就算对象之前本就是activeSelf==fal,事件依然会发⽣;
⼆、问题
在实际的开发中,对SetActive的使⽤是⾮常频繁的,所以以对已经是activeSelf==true的对象,设置SetActive(true),和对已经是activeSelf==fal的对象,设置SetActive(fal)。很正常的,或者说是不可避免的。
这样问题就来了,⽐如,我们连续多次都调⽤了SetActive(true),也会多次响应OnEnable()。就是说我们在保持对象是activeSelf==true 的状态没有变化的情况下,OnEnable()⽅法会被多次执⾏。这时就它就会出问题了,当然也可能不会出问题,这个主要看⼈在OnEnable()实现的逻辑了。
同理,SetActive(fal),和OnDisable()与会有同样的问题。
心累的句子说说心情
闻一多三、解决
电子商务推广方法其实解决这个问题的办法也很简单的,就是在每次SetActive()之先检测对就的activeSelf状态。
我们可以封装⼀个⾃⼰的SetActive⽅法,来代替它:
static public void SetActive(GameObject go, bool state)
{
珠海市天气预报
if (go == null)
{
return;
}
if (go.activeSelf != state)
祝福祖国的话简短
{
go.SetActive(state);
华夫饼的做法
}
}
快乐的英语

本文发布于:2023-06-10 01:35:44,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/915711.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:问题   对象   句子   就算   事件   状态   电子商务
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图