Object 对象

UnityEngine.Object

变量说明
hideFlags由用户保存在场景或可修改的对象应该被隐藏么?
name对象的名称
方法说明
GetInstanceID返回对象的实例ID。
ToString返回对象的名称。
静态方法说明
Destroy删除一个游戏对象、组件或资源
DestroyImmediate立即销毁物体对象,强烈建议使用 Destroy 代替。因为它可以永久性地销毁资源,此函数只应在编写编辑器代码时使用
DontDestroyOnLoad加载新场景的时候使目标对象不被自动销毁。
FindObjectOfType返回Type类型第一个激活的加载的对象。(效率非常低,不建议使用)
FindObjectsOfType返回Type类型的所有激活的加载的物体列表。(效率非常低,不建议使用)
Instantiate克隆原始物体并返回克隆物体。
Operators 操作符说明
bool对象是否存在?
operator !=比较如果两个对象不相同。
operator ==比较如果两个物体相同。

示例:

Object.Destroy

会在 Update 之后,渲染之前执行销毁操作。

  1. public static void Destroy(Object obj, float t = 0.0f);
  2. // 删除当前游戏对象
  3. Destroy (gameObject);
  4. // 删除当前这个脚本
  5. Destroy (this);
  6. // 删除当前游戏对象上的刚体组件
  7. Destroy (rigidbody);
  8. // 5秒后删除这个游戏对象
  9. Destroy (gameObject, 5);

Object.Instance

  1. public static Object Instantiate(Object original);
  2. public static Object Instantiate(Object original, Transform parent);
  3. public static Object Instantiate(Object original, Transform parent, bool worldPositionStays);
  4. public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
  5. public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);
  6. 参数:
  7. original:需要被克隆的原始物体
  8. position:新物体的位置
  9. rotation:新物体的旋转
  10. parent:指定新物体的父物体
  11. worldPositionStays:当指定父物体以后仍保持原始的世界坐标
  1. using UnityEngine;
  2. public class InstantiateExample : MonoBehaviour
  3. {
  4. public GameObject prefab;
  5. void Start()
  6. {
  7. for (int i = 0; i < 10; i++)
  8. Instantiate(prefab, new Vector3(i * 2.0f, 0, 0), Quaternion.identity);
  9. }
  10. }

实例化也能直接克隆脚本实例,整个游戏物体层次将被克隆,并且返回被克隆脚本的实例

使用泛型的方式:

  1. using UnityEngine;
  2. public class InstantiateGenericsExample : MonoBehaviour
  3. {
  4. public Missile missile;
  5. void Start ()
  6. {
  7. Missile missileCopy = Instantiate<Missile>(missile);
  8. }
  9. }