[unity] GameObject 常用 成员变量,静态方法,成员方法
·
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);
更多推荐
所有评论(0)