GameObject属性
-
GameObject.activeSelf 是否活动
该属性是一个只读属性我们可以通过打印日志的方式看到运行的结果
- 1
-
GameObject.tag 标签
该属性是一个可读可写的属性
- 1
- 2
如果要通过代码对游戏对象修改tag值,确保已经在标签列表中添加过要修改的标签
- 1
- 2
- GameObject.layer 层
访问或修改游戏对象所在的层,该属性也是可读可写。代码操作方式可tag操作相同 - GameObject.name名字
访问或修改游戏对象的名字
- 1
- 2
- 3
- 4
- 克隆对象
克隆游戏对象从效率上讲,克隆一个对象要比创建一个对象效率要高。常用于一些完全相同并且数量庞大的游戏对象,比如发射的子弹对象,每一颗子弹对象是完全一样的,每一次发射子弹都会克隆一个子弹对象,并且让克隆的子弹对象完成自己的生命周期。
public static Object Instantiate (Object original)
这实际上在Unity和使用复制(ctrl+D)命令是一样的。如果一个游戏物体,绑定了组件或脚本,将克隆整个游戏物体层次,以及所有子对象也会被克隆。所有游戏物体被激活。
- public static Object Instantiate(Object original);
- public static Object Instantiate(Object original, Transform parent);
Object Instantiate(Object original, Transform parent, bool instantiateInWorldSpace); - public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
- public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);
- public static T Instantiate(T original) where T : Object;
- public static T Instantiate(T original, Transform parent) where T : Object;
- public static T Instantiate(T original, Vector3 position, Quaternion rotation) where T : Object;
- public static T Instantiate(T original, Transform parent, bool worldPositionStays) where T : Object;
- public static T Instantiate(T original, Vector3 position, Quaternion rotation, Transform parent) where T : Object;
这些方法都是克隆的重载方法
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 创建对象
在Unity场景中出现的所有实体都属于游戏对象,比如系统自带的立方体、球体以及美工制作的.FBX游戏模型等。游戏对象与脚本联系常紧密,因为游戏对象之间的一切交互都需要使用脚本来完成。
使用脚本来调用游戏对象的方式有两种:
一、将脚本绑定在一个游戏对象上;
二、在代码中动态绑定脚本和删除脚本。
任何一个游戏对象都可以同时绑定多条游戏脚本,并且这些脚本互不干涉,各自完成各自的生命周期。
GameObject.CreatePrimitive(PrimitiveType.Cube);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
-
获取游戏对象
1.GameObject.Find 查找
static GameObject Find (string name) 找到并返回一个名字为name的游戏物体。
如果以name为名字的游戏物体没有被找到,则返回空
如果name中包含‘/’字符,这个名称将被视作一个hierarchy中的路径名.这个函数只返回活动的游戏物体。除非迫不得已,建议不要在每一帧中使用这个函数。可以在开始的时候用一个成员变量来缓存结果2.GameObject.FindWithTag 查找标签
static GameObject FindWithTag (string tag)返回一个用tag做标识的活动的游戏物体,如果没有找到则为空。标签必须在使用之前到标签管理器里面声明。标签用于在脚本中通过标签名称快速查找物体。在标签管理器中可以设置层和标签。它位于菜单Edit->Project Settings->Tags.系统默认的7个标签:Untagged(未标记) Respawn(重生)Finish(完成)EditorOnly(只编辑)MainCamera(主摄像机)Player(游戏者)GameController(游戏控制器)3.GameObject.FindGameObjectsWithTag 查找相同标签的游戏物体列表static GameObject[] FindGameObjectsWithTag (string tag) 返回一个用tag做标识的活动的游戏物体的列表.如果没有找到则 为 空。标签必须在使用之前到标签管理器里面声明。
4.运行游戏后,在代码中也可以动态添加与修改标签,但是必须提前在标签管理器中注册该标签,否则在程序 中修改标签时会抛出异常,提示无法找到该标签。
参考代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
-
销毁游戏对象
销毁对象
public static void Destroy(Object obj);
在t秒后销毁对象
public static void Destroy(Object obj, [DefaultValue(“0.0F”)] float t);
立刻销毁游戏对象
public static void DestroyImmediate(Object obj); -
对象添加组件
为了让游戏对象具备一些功能,就必须给其添加游戏组件。游戏组建的种类非常多。常见的游戏组件有脚本类、网格类、粒子类、物理类、声音类 和渲染类。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 获取对象组件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 删除游戏对象组件
删除游戏对象组件的时候一般都不是单独存在的,我们要向删除,必须知道是删除的那个游戏对象身上的游戏组件