查看: 3754|回复: 5
打印 上一主题 下一主题

[经验分享] unity3d 游戏对象消失三种方法的区别(enabled/Destroy/active)

[复制链接]

1557

主题

1

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
454
精华
31

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2013-10-23 15:39:09 |只看该作者 |倒序浏览
gameObject.renderer.enabled
是控制一个物体是否在屏幕上渲染或显示  而物体实际还是存在的 只是想当于隐身 而物体本身的碰撞体还依然存在的

GameObject.Destroy()  
表示移除物体或物体上的组件 代表销毁该物体  实际上该物体的内存并没有立即释放 而是在你下下个场景中槽释放内存资源,就是你a场景中Destroy了 一般是在c场景中才真正释放该物体的内存资源(这是我的体会 不知道理解错误没)

gameObject.active   
是否在场景中停用该物体   在你gameObject.active =false中 则你在场景中用find找不到该物体  
如果该物体有子物体 你要用SetActiveRecursively(false) 来控制是否在场景中停用该物体(递归的)
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏1 支持支持0 反对反对0
回复

使用道具 举报

7

主题

0

听众

2518

积分

中级设计师

Rank: 5Rank: 5

纳金币
317
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2013-10-24 23:40:52 |只看该作者
一定要頂一下
這是官方沒有說明白的部分

感謝大大詳解!!!
回复

使用道具 举报

2

主题

7

听众

5583

积分

高级设计师

Rank: 6Rank: 6

纳金币
87
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2013-10-26 16:04:21 |只看该作者
谢谢分享。
回复

使用道具 举报

74

主题

2

听众

3549

积分

中级设计师

Rank: 5Rank: 5

纳金币
-100
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2013-10-26 21:52:08 |只看该作者
感觉在父子物体上的这三个方法也有区别
回复

使用道具 举报

2

主题

1

听众

1143

积分

助理设计师

Rank: 4

纳金币
350
精华
0
5#
发表于 2013-10-28 11:04:14 |只看该作者
感谢楼主分享
回复

使用道具 举报

0

主题

1

听众

301

积分

设计实习生

Rank: 2

纳金币
129
精华
0
6#
发表于 2016-12-12 16:01:30 |只看该作者
由游戏对象名称(标签)获取

//**当tag包含多个对象时,会获取到最后读取的那个对象**
using UnityEnine;
using System.Collections;
public class Myclass:MonoBehaviour{
    void Start(){
        //获取名称为"gamename"的游戏对象
        GameObject name = GameObject.Find("gamename");
        name.transform.Translate(0, 0, 1);
        //获取标签为"gametag"的游戏对象
        GameObject tag = GameObject.FindWithTag("gametag");
        teg.GetComponent<Test>().doSomething();
    }}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-8-4 05:59 , Processed in 0.126503 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部