Unity 创建游戏物体的常用方法
一、创建空的游戏物体
- 创建一个空的游戏物体
1 void Start() 2 { 3 new GameObject(); 4 }
- 创建一个空的游戏物体,并命名
1 void Start() 2 { 3 new GameObject("Table"); 4 }
- 创建一个空的游戏物体,命名并用 go 接受对象(代码内操作其他属性)
1 void Start() 2 { 3 GameObject go = new GameObject("Table"); 4 print(go.name); 5 }
二、创建原始对象 Cube、Sphere、Capsule 等
1 void Start() 2 { 3 GameObject.CreatePrimitive(PrimitiveType.Cube); //正方体 4 GameObject.CreatePrimitive(PrimitiveType.Sphere); //球体 5 GameObject.CreatePrimitive(PrimitiveType.Capsule); //胶囊 6 GameObject.CreatePrimitive(PrimitiveType.Cylinder); //圆柱体 7 GameObject.CreatePrimitive(PrimitiveType.Plane); //平面,占用内存大 8 GameObject.CreatePrimitive(PrimitiveType.Quad); //平面,占用内存小 9 }
三、通过预制体创建对象
方法大致有五个:
-
GameObject.Instantiate(Object original);
指定参数只有一个,预制体(也就是实例化对象)
-
GameObject.Instantiate(Object original, Transform parent);
参数分别为:预制体(实例化对象)和指定创建对象的父类
-
GameObject.Instantiate(Object original, Transform parent, bool instantiateInWorldSpace);
最后一个参数是-分配父类的时候是否保持原始的世界位置,false不保留,true保留
-
GameObject.Instantiate(Object original, Vector3 position, Quaternion rotation);
参数分别为:实例化对象(预制体),实例化的位置,实例化的角度
-
GameObject.Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);
参数分别为:实例化对象(预制体),实例化的位置,实例化的角度,指定父类
1 public GameObject prefab; 2 3 void Start() 4 { 5 // 这里创建一个空的游戏物体作为父类 6 GameObject go = new GameObject("table"); 7 8 GameObject.Instantiate(prefab); //实例化对象 9 GameObject.Instantiate(prefab, go.transform); //创建的时候指定父类(go.transform) 10 GameObject.Instantiate(prefab, go.transform, false); //分配父类的时候是否保持原始的世界位置,false不保留,true保留 11 GameObject.Instantiate(prefab, go.transform.position, Quaternion.identity); //Quaternion.identity -对象与世界轴或父轴完美对齐(无旋转) 12 GameObject.Instantiate(prefab, go.transform.position, Quaternion.identity, go.transform); //创建对象的同时指定父类 13 }
*** | 以上内容仅为学习参考、学习笔记使用 | ***