gameObject:游戏对象

一、gameObject成员变量

        1、获取对象的名字

this.gameObject.name//获取当前对象的名字
this.gameObject.name='修改名字';//修改对象名字

        2、对象是否激活

this.gameObject.activeSelf//获取了当前物体的激活状态
print(this.gameObject.activeSelf);//输出当前物体的激活状态,发现是bool变量

        3、对象是否是静态(static)

this.gameObject.isStatic//获取对象是否是静态的

        4、获取对象层级与标签

this.gameObject.layer//获取当前组件的层级
this.gameObject.tag//获取当前组件的标签

        5、物体的位置信息

this.gameObject.transform//获取当前组件的位置信息
this.gameObject.transform.position//获取当前物体的位置坐标
this.gameObject.transform.eulerAngles//获取当前物体的角度信息(旋转)
this.gameObject.transform.lossyScale//获取当前物体的缩放信息

 二、gameObject静态方法

        1、创建自带几何体

GameObject.CreatePrimitive(PrimitiveType.Cube);//在场景里创建几何体cube可以替换成别的
GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Cube);//可以把这个创建的物体赋值给一个变量,然后就可以进行第一部分里的各种操作

        2、查找对象

1、查找单个对象
    (1)根据对象名查找对象
     GameObject obj = GameObject.Find("要查找物体的名字");
    //这个查找效率比较低,是遍历全部物体
    //注意这个查找的结果是一个bool类型变量
    //无法找到失活的对象
    //如果有多个满足条件的对象则无法准确的找到想要的那一个
    
    (2)通过标签tag来查找对象
    GameObject obj = GameObject.FindWithTag("标签名");
    //无法找到失活的对象
    //如果有多个满足条件的对象则无法准确的找到想要的那一个

2、查找多个对象(只能能通过tag来找,不能通过名字)
    (1)根据标签查找
    GameObject[] objs = GameObject.FindGameObjectsWithTag("要查找的标签名");
    //返回的是一个数组,所以用数组存储
    //无法找到失活对象

        3、实例化对象的方法

public GameObject obj;
//首先创建一个共有的对象,在unity里把GameObject对象拖进这里,包含已有对象或者预设体
GameObject.Instantiate(obj);
//动态创建这个物体,GameObject可写可不写

        4、删除对象的方法

GameObject.Destroy(obj);//删除对应的物体
GameObject.Destroy(obj,5);//五秒后删除对象
GameObject.Destroy(this);//删除当前脚本
//Destroy()第一次执行的时候不会直接移除,而是会在下一帧移除,可以降低卡顿
//如果想在第一次执行的时候就立即删除,用一下方法
GameObject.DstroyImmediate(obj);

        5、过场景不移除

        正常情况下,场景切换的时候,场景中的对象会被自动删除掉

GameObject.DontDestroyOnLoad(this.GameObject);
//可以使挂载了这个脚本的物体在场景切换的时候不被删除

三、GameObject成员方法

        1、创建空物体

GameObject obj = new GameObject("空物体的名字");//创建一个空物体
GameObject obj = new GameObject("空物体的名字",typeof(已有的脚本名));
//创建一个空物体,并给他附加脚本,附加脚本的个数是不限的

        2、为对象添加脚本

脚本名 变量名 = obj.AddComponent<脚本名>();//泛型,在挂载了这个脚本的物体上添加上对应的脚本

        3、得到脚本

obj = GetComponent<脚本名>();//获取物体上挂载的其他脚本

        4、标签比较

this.gameObject.CompareTag("标签名");//判断当前的物体标签是不是"标签名"

        5、设置激活失活

//失活
obj.SetActive(false);
//激活
obj.SetActive(true);

更多推荐