创建Unity预制件的克隆

时间:2014-10-24 14:52:27

标签: c# unity3d clone

我正在尝试从文件加载预制件并创建已加载文件的克隆而不实例化它。更改已加载克隆脚本的数据值不应更改预制值。

我试图创建克隆和加载预制件的克隆。

使用Resources.Load:

将预制件加载到一起
 enemy = new Player();
 enemy.playerColor = Color.red;
 enemy.Name = "enemy";
 enemy.unitList.AddResources.Load("Prefab/Soldier", typeof(GameObject)) as GameObject);

使用实例化克隆功能加载预制件:

enemy = new Player();
enemy.playerColor = Color.red;
enemy.Name = "enemy";
enemy.unitList.Add(Instantiate(Resources.Load("Prefab/Soldier", typeof(GameObject)) as GameObject) as GameObject);

更改加载的预制件:

public void updateUnit(string prop, float val)
{
    switch (prop)
    {
        case "Movespeed":
            Movespeed += (int)val;
            break;
        case "SpawnRate":
            SpawnRate += val;
            break;
    }
}

目前的问题是在预制件上使用实例化功能,在屏幕上创建克隆。使用加载的预制件会导致预制件中脚本发生变化

1 个答案:

答案 0 :(得分:-1)

1:创建一个游戏对象,并根据需要将预制件分配给它

private GameObject toclone;

2:创建要克隆到的游戏对象,以便稍后调用

private GameObject clone;

3:运行此命令将其召唤。使用vector3替换Position并使用四元数替换Rotation(如果要使用vector3进行旋转,请使用Quaternion.Euler)

clone = Instantiate(toclone, Position, Rotation, Quaternion.Identity);