基础概念
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
还可以通过脚本启用或禁用脚本组件和某些类型的内置组件,而不销毁它们。
访问组件
访问组件可以使用 GetComponent
获取到的组件可以像 Inspector 面板中一样设置组件的属性,并且和可以使用组件的方法
GameObject的创建和销毁
当游戏对象制作成预制体后也是使用 GameObject 将其进行存储,使用时只需读取下来再使用 GameObject.Instantiate 进行实例化即可,此方法有许多重载这里列举一个最简单的。
GameObject.Instantiate(NewGameObject);
GameObject 的销毁是使用 Destory 进行的例如
Destroy(This);
Destroy(gameObject, 1f);
前者是立刻销毁,后者是延迟1秒销毁。
标签:GameObject,Unity,活动状态,使用,组件,Inspector From: https://www.cnblogs.com/comradexiao/p/18474339