码迷,mamicode.com
首页 > 编程语言 > 详细

Unity API 解析(7)—— Object 类

时间:2014-11-09 12:28:40      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:des   style   io   color   ar   os   sp   for   div   

Object 类是Unity中所有对象的基类

 

GetInstanceID —— Object 对象ID

每个对象在工程中都有唯一的ID,并且从程序开始运行到结束,除非对象被销毁,否则每个实例对应的ID都不会改变

从GameObject.CreatePrimitive() 或 Object.Instantiate() 中创建或克隆的每个名字相同的GameObject对象都有唯一的ID

using UnityEngine;
using System.Collections;

public class GetInstanceID_ts : MonoBehaviour {
	void Start () {
        Debug.Log("gameObject 的ID"+gameObject.GetInstanceID());
        Debug.Log("transform 的ID"+transform.GetInstanceID());

        GameObject g1, g2;
        // 从GameObject 创建一个对象
        g1=GameObject.CreatePrimitive(PrimitiveType.Cube);
        // 克隆对象
        g2=Instantiate(g1,Vector3.zero,Quaternion.identity)as GameObject;

        Debug.Log("GameObject g1 的ID"+g1.GetInstanceID());
        Debug.Log("Transform g1 的ID"+g1.transform.GetInstanceID());

        Debug.Log("GameObject g2 的ID" + g2.GetInstanceID());
        Debug.Log("Transform g2 的ID" + g2.transform.GetInstanceID());
	}
}

Destroy 方法 —— 销毁对象

public  static  void Destroy (Object obj, float t)

执行完本方法后t秒销毁对象(可以是对象也可以是组件)

DontDestroyOnLoad 方法 —— 新场景中保留对象

如果target为根物体的GameObject 对象或GameObject 对象中的某个组件,则物体自身及其子物体都会被导入到新的scene中

若想吧场景中某个子物体导入到新的scene中,可以用Transform.DetachChildren 方法进行父子层级关系分离,然后再导入新Scene中

FindObjectOfType 方法 —— 获取对象

获取工程中所有符合参数类型的对象,此方法需要遍历整个工程,执行速度慢,不适于在每帧中调用,对于遍历的结果可以通过对象的name或InstanceID进行选择处理

FindObjectOfType —— 获取工程中符合type类型的第一个对象,多用于检测工程中是否含有某种类型的对象

using UnityEngine;
using System.Collections;

public class FindObjectOfType_ts : MonoBehaviour {
	void Start () {
        GameObject[] gos = FindObjectsOfType(typeof(GameObject)) as GameObject[];
        foreach(GameObject go in gos){
            //1.5 秒后销毁除摄像机外的所有GameObject
            if (go.name != "Main Camera")
            {
                Destroy(go, 1.5f);
            }
        }

        Rigidbody[] rbs = FindObjectsOfType(typeof(Rigidbody))as Rigidbody[];
        foreach(Rigidbody rb in rbs){
            // 启用除球体外的所有刚体的重力感应
            if(rb.name!="Sphere"){
                rb.useGravity = true;
            }
        }
	}
}

Instantiate —— 实例化对象

当实例化一个对象时,会同时实例化根对象的所有子类

Unity API 解析(7)—— Object 类

标签:des   style   io   color   ar   os   sp   for   div   

原文地址:http://www.cnblogs.com/sprint1989/p/4084706.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!