unity3D 中如何判断一个gameobject是否存在?
好像如果直接destroy某个物体的话,在场景中没有这个物体的情况下就会报错……所以想要判断一下if某个物体存在的时候删除,但是不知道具体应该怎么写……麻烦球问一下要怎么...
好像如果直接destroy某个物体的话,在场景中没有这个物体的情况下就会报错……所以想要判断一下if某个物体存在的时候删除,但是不知道具体应该怎么写……麻烦球问一下要怎么判断QWQ
展开
3个回答
展开全部
unity3D 中判断一个gameobject是否存在代码如下:
//删除对象前先判断对象是否存在
if(target){
//target为Component组件类型就删除组件,常用的Transform、Rigidbody、MeshFilter,如
为GameObject 就删除对象
Destroy(target);
Debug.Log(target==null);//false
//或者只删除对象
unity3D技巧
1.Reset():只会在editor模式下触发。
2.Awake():即在脚本初始化的时候执行一次。
3.OnEnable():脚本依附在GameObject上后,场景被启动时,只有在.SetActive(true)情况才会执行。
4.Start():脚本开始运作执行一次。
5.FixedUpdate():不受帧率的影响,按固定时间执行,常用于运动。
6.Update():每一秒执行相应的次数,这里的次数即帧数,是根据硬件设备以及内部函数复杂度决定的,可能上一秒60帧,这一秒就是80帧,不唯一。
展开全部
首先定义GameObject,之后用if(Gameobjeect)判断
public GameObject player;
//并不是只有Update才行
void Update(){
if (player) { //放入你的代码}}}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//删除对象前先判断对象是否存在
if(target){
//target为Component组件类型就删除组件,常用的Transform、Rigidbody、MeshFilter,如果为GameObject 就删除对象
Destroy(target);
Debug.Log(target==null);//false
//或者只删除对象
//Destroy(target.gameObject);
//或者使用DestroyImmediate方法立即删除对象
//DestroyImmediate(target);
//Debug.Log(target==null);//true
}
if(target){
//target为Component组件类型就删除组件,常用的Transform、Rigidbody、MeshFilter,如果为GameObject 就删除对象
Destroy(target);
Debug.Log(target==null);//false
//或者只删除对象
//Destroy(target.gameObject);
//或者使用DestroyImmediate方法立即删除对象
//DestroyImmediate(target);
//Debug.Log(target==null);//true
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询