GameObject

基础概念

GameObjcet

Unity 的 GameObject 类用于表示任何可以存在于场景中的事物。

GameObject 是 Unity 中场景的构建块,可充当用于确定 GameObject 外观以及 GameObject 作用的功能组件的容器。
除了使用代码修改 GameObject 的属性外还可以在编辑器中选中对象,通过 Inspector 面板调整,注意如果是自定义的脚本,只有属性公开或者使用 [SerializeField] 修饰才能在编辑器中修改。

场景状态属性
可以通过脚本修改一些与场景中的 GameObject 状态相关的属性。在编辑器中选择了 GameObject 时,这些属性通常与 Inspector 顶部附近显示的控件对应。

它们不与任何特定组件相关,会显示在 GameObject 的 Inspector 顶部(组件列表上方)。

GameObject 的活动状态

GameObject 在默认情况下处于活动状态,但可以停用,这会关闭附加到 GameObject 的所有组件。这通常意味着它将变得不可见,不会接收任何正常回调或事件,例如 Update 或 FixedUpdate。
GameObject 的活动状态由 GameObject 名称左侧的复选框表示。可以使用 GameObject.SetActive 控制此状态。还可以使用 GameObject.activeSelf 读取当前活动状态,使用 GameObject.activeInHierarchy 读取 GameObject 是否在场景中实际处于活动状态。这两者中的后者是必要的,因为 GameObject 是否实际处于活动状态取决于其自身的活动状态,以及其所有父项的活动状态。如果其所有父项都不处于活动状态,则尽管它自己设置为活动状态,它也不会处于活动状态。

静态状态

Unity 的一些系统(如全局光照、遮挡、批处理、导航和反射探针)依赖于 GameObject 的静态状态。可以使用 GameObjectUtility.SetStaticEditorFlags 控制哪些 Unity 系统将 GameObject 视为静态。
添加和移除组件
在运行时可以使用 AddComponent() 为 GameObject 对象添加组件,如果需要删除组件可以使用Object.Destory()。
还可以通过脚本启用或禁用脚本组件和某些类型的内置组件,而不销毁它们。

访问组件
访问组件可以使用 GetComponent() 获取组件如下:

获取到的组件可以像 Inspector 面板中一样设置组件的属性,并且和可以使用组件的方法

GameObject的创建和销毁

当游戏对象制作成预制体后也是使用 GameObject 将其进行存储,使用时只需读取下来再使用 GameObject.Instantiate 进行实例化即可,此方法有许多重载这里列举一个最简单的。
GameObject.Instantiate(NewGameObject);
GameObject 的销毁是使用 Destory 进行的例如

Destroy(This);
Destroy(gameObject, 1f);

前者是立刻销毁,后者是延迟1秒销毁。

posted @   请明月  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示