首页 > 其他分享 >GameObject

GameObject

时间:2024-10-18 15:12:33浏览次数:4  
标签:GameObject Unity 活动状态 使用 组件 Inspector

基础概念

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秒销毁。

标签:GameObject,Unity,活动状态,使用,组件,Inspector
From: https://www.cnblogs.com/comradexiao/p/18474339

相关文章

  • 『功能项目』GameObject对象池 - 第三职业【39】
    本章项目成果展示我们打开上一篇38管理器基类的项目,本章要做的事情是利用对象池制作第三个职业——魔法师在GameRoot对象下创建空物体重命名为PoolRoot将GameRoot拖拽至预制体创建脚本:编写脚本:PoolManager.csusingUnityEngine;publicclassPoolManager:M......
  • gameobject_template | gameobject_template_addon
    目录gameobject_templateentrytypedisplayIdIconNameContentTuningIdAINamegameobject_template_addon factionflagsgameobject_templateentry gameobject模板的IDtype gameobject模板类型,取值参考源码GameObjectData.h的structGameObjectTemplat......
  • Unity GameObject学习笔记
    GameObject成员变量GameObject静态方法//准备用来克隆的对象//1.直接是场景上的某个对象//2.可以是一个预制体对象publicGameObjectMyobj;#region知识点二GameObject中的静态方法创建自带几何体只要得到了一个GameObject对象我就......
  • SubScene不是Scene,是GameObject
    有人问我如何通过Editor代码往SubScene里面加东西?说在Scene相关的类里面都没有找到合适的函数。找不到就对了,因为SubScene不是Scene,是GameObject。可以试试这样的操作:建立一个GameObject给这个GameObject添加一个叫SubScene的脚本在脚本的SceneAsset中,选择一个之前保存过的......
  • Unity中GameObject对象的方法Find,FindGameObjectsWithTag等API的使用方法
    Unity中GameObject对象的方法Find,FindGameObjectsWithTag等API的使用方法.Find(stringname):.FindGameObjectsWithTag(stringtag):.FindGameObjectWithTag(stringtag):.FindWithTag(stringtag):在Unity中,GameObject类具有一些用于查找和操作游戏对象的方法。.Find(stringna......
  • Unity之 GameObject.Find()路径正确却找不到物体
    有一个需求,需要用代码找到一个GameObject并将其取消激活。我是这么写的:GameObject.Find("mainCanvas").SetActive(false);但你运行后就会发现它报错;而报错的内容是找不到物体。反复核实路径正确,且物体确实是激活状态后我对这个代码的报错感到很不解。直到我把代码改成了:v......
  • Unity3D:Pick and select GameObjects
    推荐:将NSDT场景编辑器加入你的3D工具链3D工具集:NSDT简石数字孪生PickandselectGameObjects可以在Scene视图中或从Hierarchy窗口中选择一个游戏对象。也可以一次选择多个游戏对象。Unity会在Scene视图中突出显示选择的游戏对象及其子项。默认情况下,选择轮廓颜色为橙......
  • 通过MenuItem在场景中生成GameObject
    MenuItemAttribute允许你在主菜单中添加新的选项。而这个菜单选项来自于一个静态函数。publicclassTestMenuItem{//Createsanewmenuitem'Examples>CreatePrefab'inthemainmenu.[MenuItem("TestMenuItem/CreatePrefab")]staticvoidCreatePrefa......
  • 使用Addressables.LoadAssetAsync<Asset>(target)加载unity资源,不止是gameobject
    要声明的方法:publicstaticasyncTask<string>ReadJsonData(stringtarget){  TextAssetjsonDataObject=awaitAddressables.LoadAssetAsync<TextAsset>(target).......
  • Unity中使用GameObject.Find、Transform.Find查找GameObject
    ​GameObjectFindTransformFind查找游戏对象​​​前置条件​​​相关API​​​1GameObjectFind​​​​2TransformFind​​​​3其他查找​​​​实际测试​​​​即使......