📅  最后修改于: 2023-12-03 15:13:48.642000             🧑  作者: Mango
在Unity中,我们可以使用C#编写脚本来创建游戏物体,并且可以使用C#中的Clone方法来复制一个已存在的游戏物体。
我们可以在Unity中的Hierarchy面板中创建游戏物体,也可以使用C#代码在脚本中创建游戏物体。
GameObject newGameObject = new GameObject(); // 创建一个新的游戏物体
newGameObject.name = "NewGameObject"; // 给新的游戏物体取一个名字
我们可以使用Unity中的GameObject中的Clone方法来克隆游戏物体。Clone方法有两个参数,一个是原始游戏物体,另一个是是否克隆子对象。
GameObject originalGameObject = GameObject.Find("OriginalGameObject"); // 找到需要克隆的游戏物体
GameObject clonedGameObject = GameObject.Instantiate(originalGameObject); // 克隆游戏物体
clonedGameObject.name = "ClonedGameObject"; // 给新克隆的游戏物体取一个名字
using UnityEngine;
public class CloneGameObject : MonoBehaviour
{
public GameObject originalGameObject; // 原始游戏物体
public bool cloneChildren; // 是否克隆子对象
void Start()
{
// 克隆游戏物体
GameObject clonedGameObject = GameObject.Instantiate(originalGameObject, Vector3.zero, Quaternion.identity, null);
// 设置克隆出的新游戏物体的name
clonedGameObject.name = "ClonedGameObject";
// 如果cloneChildren为true,则克隆原始游戏物体的子对象
if (cloneChildren)
{
for (int i = 0; i < originalGameObject.transform.childCount; i++)
{
GameObject child = GameObject.Instantiate(originalGameObject.transform.GetChild(i).gameObject, clonedGameObject.transform);
child.name = originalGameObject.transform.GetChild(i).gameObject.name;
}
}
}
}
该示例脚本可以在Unity编辑器中挂载到任何游戏物体上,并在运行时克隆指定的原始游戏物体。如果设置cloneChildren为true,则会克隆原始游戏物体的子对象。