簡體   English   中英

創建 Unity 預制件的克隆

[英]Creating a clone of a Unity prefab

我正在嘗試從文件加載預制件並創建加載文件的克隆而不實例化它。 更改加載的克隆腳本的數據值,不應更改預制件值。

我正在嘗試創建克隆和加載預制件的克隆。

使用 Resources.Load 將預制件加載到 unity 中:

 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:創建一個游戲對象並以您想要的任何方式為其分配預制件

private GameObject toclone;

2:創建一個游戲對象來克隆,這樣你就可以稍后調用它

private GameObject clone;

3:運行這個命令來召喚它。 將 Position 替換為 vector3,將 Rotation 替換為四元數(如果要使用 vector3 進行旋轉,請使用 Quaternion.Euler)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM