1.实例化Unity自带的游戏对象
// 创建平面对象
GameObject plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
// 创建胶囊体对象
GameObject capsule = GameObject.CreatePrimitive(PrimitiveType.Capsule);
// 创建球体对象
GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
// 创建立方体对象
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
// 创建圆柱体对象
GameObject cylinder = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
//以上都是Unity自带的五个对象
2.实例化自己导入或是搭建的游戏对象
//从Resources目录中找到Player游戏对象并实例化
GameObject player1 = GameObject.Instantiate(Resources.Load<GameObject>("Player"));
//如果你的路径是这样Resources/Role/Player,意思是:从Resources目录中找到Role文件夹再找到Player游戏对象并实例化
GameObject player2 = GameObject.Instantiate(Resources.Load<GameObject>("Role/Player"));
GameObject.Instantiate的用法:
-
Instantiate(GameObject original) 这是最基本的使用方式,通过传入一个预制体对象original,创建一个与其完全相同的新游戏对象,并返回对该对象的引用。
-
Instantiate(GameObject original, Transform parent) 在基本用法的基础上,添加了一个父对象参数parent。实例化的新游戏对象将成为指定父对象的子对象,继承父对象的变换属性和行为。
-
Instantiate(GameObject original, Vector3 position, Quaternion rotation) 基于原始预制体对象original,可以指定新游戏对象的位置position和旋转rotation。这样可以在特定位置和方向上创建对象。
-
Instantiate(GameObject original, Transform parent, bool instantiateInWorldSpace) 同样是基于原始预制体对象original,传入父对象参数parent,还可以选择是否以父对象的世界坐标系(instantiateInWorldSpace为true)或者本地坐标系(instantiateInWorldSpace为false)来实例化新游戏对象。
这些只是Instantiate方法的常见用法示例,还有其他重载形式可以根据需求进行使用。实例化后的游戏对象可以进一步进行修改、操作和管理。