UnityEngine.Object
Variables | 变量 |
---|---|
name | 物体的名字 |
hideFlags | 物体是否被隐藏、保存在场景中或被用户修改? |
Functions | 函数 |
---|---|
GetInstanceID | 返回物体的实例ID |
ToString | 返回游戏物体的名称。 |
Static Functions | 静态函数 |
---|---|
Destroy | 删除一个游戏物体、组件或资源 |
DestroyImmediate | 立即销毁物体obj,强烈建议使用Destroy代替。 |
DontDestroyOnLoad | 加载新场景的时候使目标物体不被自动销毁。 |
FindObjectOfType | 返回Type类型第一个激活的加载的物体。 |
FindObjectsOfType | 返回Type类型的所有激活的加载的物体列表 |
Instantiate | 克隆原始物体,并返回克隆的物体 |
Operators | 运算符 |
---|---|
bool | 对象是否存在 |
operator != | 比较两个对象的引用是否不同 |
operator == | 比较两个对象的引用是否相同。 |
GameObject, Component在游戏中的组成
GameObject, Component,UnityEngine.Object的关系
UnityEngine.Object常用方法
销毁
//销毁游戏物体
Destroy (gameObject);
//从游戏物体删除该脚本实例
Destroy (this);
//从游戏物体删除刚体
Destroy (rigidbody);
//加载物体5秒后销毁游戏物体
Destroy (gameObject, 5);
//当按下Ctrl将从游戏物体删除名为FooScript的脚本
void Update () {
if (Input.GetButton ("Fire1") && GetComponent (FooScript))
Destroy (GetComponent (FooScript));
}
//当加载新场景的时候,使游戏物体和它所有的transform子物体存活下来
function Awake () {
DontDestroyOnLoad (transform.gameObject);
}
查找
FindObjectOfType 查找首个Type物体
返回Type类型第一个激活的加载的物体。
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
void Start() {
GUITexture s = FindObjectOfType(typeof(GUITexture));
if (typeof(s))
Debug.Log("GUITexture object found: " + s.name);
else
Debug.Log("No GUITexture object could be found");
}
}
FindObjectsOfType 查找Type物体
返回Type类型的所有激活的加载的物体列表
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
void OnMouseDown() {
HingeJoint[] hinges = FindObjectsOfType(typeof(HingeJoint)) as HingeJoint[];
foreach (HingeJoint hinge in hinges) {
hinge.useSpring = false;
}
}
}
请注意这两个函数是非常慢的。不推荐在每帧使用这个函数,大多数情况下你可以使用单例模式代替。