- Object 对象
- 示例:
- 示例:
Object 对象
UnityEngine.Object
| 变量 | 说明 |
|---|---|
| hideFlags | 由用户保存在场景或可修改的对象应该被隐藏么? |
| name | 对象的名称 |
| 方法 | 说明 |
|---|---|
| GetInstanceID | 返回对象的实例ID。 |
| ToString | 返回对象的名称。 |
| 静态方法 | 说明 |
|---|---|
| Destroy | 删除一个游戏对象、组件或资源 |
| DestroyImmediate | 立即销毁物体对象,强烈建议使用 Destroy 代替。因为它可以永久性地销毁资源,此函数只应在编写编辑器代码时使用 |
| DontDestroyOnLoad | 加载新场景的时候使目标对象不被自动销毁。 |
| FindObjectOfType | 返回Type类型第一个激活的加载的对象。(效率非常低,不建议使用) |
| FindObjectsOfType | 返回Type类型的所有激活的加载的物体列表。(效率非常低,不建议使用) |
| Instantiate | 克隆原始物体并返回克隆物体。 |
| Operators 操作符 | 说明 |
|---|---|
| bool | 对象是否存在? |
| operator != | 比较如果两个对象不相同。 |
| operator == | 比较如果两个物体相同。 |
示例:
Object.Destroy
会在 Update 之后,渲染之前执行销毁操作。
public static void Destroy(Object obj, float t = 0.0f);// 删除当前游戏对象Destroy (gameObject);// 删除当前这个脚本Destroy (this);// 删除当前游戏对象上的刚体组件Destroy (rigidbody);// 5秒后删除这个游戏对象Destroy (gameObject, 5);
Object.Instance
public static Object Instantiate(Object original);public static Object Instantiate(Object original, Transform parent);public static Object Instantiate(Object original, Transform parent, bool worldPositionStays);public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);参数:original:需要被克隆的原始物体position:新物体的位置rotation:新物体的旋转parent:指定新物体的父物体worldPositionStays:当指定父物体以后仍保持原始的世界坐标
using UnityEngine;public class InstantiateExample : MonoBehaviour{public GameObject prefab;void Start(){for (int i = 0; i < 10; i++)Instantiate(prefab, new Vector3(i * 2.0f, 0, 0), Quaternion.identity);}}
实例化也能直接克隆脚本实例,整个游戏物体层次将被克隆,并且返回被克隆脚本的实例
使用泛型的方式:
using UnityEngine;public class InstantiateGenericsExample : MonoBehaviour{public Missile missile;void Start (){Missile missileCopy = Instantiate<Missile>(missile);}}
