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);
        }
    }