1.创建几何体
GameObject.CreatePrimitive(PrimitiveType.Cube);//创建一个立方体
2.查找单个对象
通过名字获取
效率低 遍历场景中的所有对象 没有找到返回null
GameObject game = GameObject.Find(“Cube”);
通过标签获取
GameObject game = GameObject.FindWithTag(“MainCamera”);
同样的效果
GameObject game =GameObject.FindGameObjectWithTag(“MainCamera”);
注意
名字和标签方法无法获取失活对象 只能找到激活对象
场景中若有多个同名或同标签的对象 随机返回一个
准确得到单个对象的方法
1.使用public 对象 在Inspector中设置对象
2.名字或者标签唯一
3.查找多个对象
GameObject.FindGameObjectsWithTag(“MainCamera”);
返回一个数组
无法获取失活对象 只能找到激活对象
Unity里的Object不是万物之父
GameObject.FindObjectOfType<脚本名>();//效率更低 不仅遍历对象还遍历对象上的脚本
4.实例化(克隆)对象
根据一个游戏对象 克隆一个和它一样的对象
GameObject.Instantiate(GameObject.CreatePrimitive(PrimitiveType.Capsule));
参数为游戏对象或者预制体
5.删除对象
GameObject o= GameObject.Instantiate(GameObject.CreatePrimitive(PrimitiveType.Capsule));
GameObject.Destroy(o);//删除
GameObject.Destroy(o,1f);//1秒后删除 参数二代表时间
不仅可以删除游戏对象还可以删除脚本
不会立即删除对象 先给对象加标记 然后在下一帧删除对象
DestroyImmediate(this.gameObject);//立即删除对象
6.场景切换时不删除指定对象
GameObject.DontDestroyOnLoad(this);