这个类是UNITY引擎的所有类的基类,在命名空间UnityEngine 中,其中提供了对象都具有的方法和属性。
变量:
public HideFlags hideFlags { get; set; }
说明:标记该对象的操作方式
public string name { get; set; }
说明:该对象的名字,在该类中只有一个默认的构造函数,并没有需要串门对象名的构造函数
Public函数:
public int GetInstanceID();
说明:返回对象的ID
public override string ToString();
说明:返回对象的名称, 这儿使用 override 是重写C#中的基类方法
Static函数:
特殊说明:由于Unity游戏引擎中的类都派生于Object,所以所有子类都能调用此处方法
public static void Destroy(Object obj);
public static void Destroy(Object obj, float t);
说明:延时 t(S) 后销毁对象 obj
public static void DestroyImmediate(Object obj);
public static void DestroyImmediate(Object obj, bool allowDestroyingAssets);
说明:立即销毁对象, allowDestroyingAssets允许销毁对象的资源,一般情况下都使用 Destroy, 除非对象的析构函数不会调用
public static void DontDestroyOnLoad(Object target);
说明:在加载其他场景时会先销毁当前场景的所有对象,再创建需要加载场景中的对象。此函数可以保证 target 不会被销毁,而且会保留 target 所有父级变换器
public static Object FindObjectOfType(Type type);
public static T FindObjectOfType<T>() where T : Object;
说明:返回第一个已经加载的活动的类型为 type 的对象,效率比较低,不要频繁使用
public static Object[] FindObjectsOfType(Type type);
public static T[] FindObjectsOfType<T>() where T : Object;
说明:返回所有类型为 type 的对象,API 中一会儿说返回活动的对象、一会儿可以是非活动对象,具体没尝试
public static Object Instantiate(Object original);
public static T Instantiate<T>(T original) where T : Object;
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
说明:克隆某个对象,可以指定 position 和 rotation,克隆出来的对象具有被克隆对象的所有属性,除了父对象为null
操作符重载:
public static bool operator !=(Object x, Object y);
public static bool operator ==(Object x, Object y);
说明:通过两对象的引用判断是否相等
public static implicit operator bool(Object exists);
说明:判断对象是否存在
补充:
在公共函数和变量中:name 和ToString() 获取的是一个在层级中的对象属性。hideFlags 和 GetInstanceID() 获取的是当前组件或者对象所唯一拥有的。意思就是同一个GameObject中所有的组件获取的 name 和 ToString() 是相同的。其他则是不同的。