代码之家  ›  专栏  ›  技术社区  ›  zyonneo

当游戏对象被实例化时,会以克隆的形式出现。有没有办法识别每个克隆?

  •  0
  • zyonneo  · 技术社区  · 7 年前

    考虑一个多维数据集。最初,该多维数据集通过拖入项目窗口转换为预置,并从层次结构中删除。现在,这个预置正在实例化。因此,当它实例化几次时,所有实例化的游戏对象都将具有该名称 多维数据集(克隆)

    3 回复  |  直到 7 年前
        1
  •  3
  •   Technivorous    7 年前

    有几种方法。在检查器中单击它们将在场景视图中显示它们,反之亦然,但是您也可以通过脚本来增加某种ID,此方法将代替您的实例化。

    int id = 0;
    
                    for ( int i = 0; i<5; i++)
                    {
                        GameObject yourob = Instantiate(obj) as GameObject;
                        yourob.gameObject.name = "Object " + id;
                        id++;
                    }
    

    Object 0 - Object 4

    注: 你可以更改字符串 Object 你想要什么都行。

        2
  •  2
  •   Chawy    7 年前

    你能做到的。

    例子:

    public class MyClass : MonoBehaviour
    {
        [SerializeField]
        GameObject myPrefab;
    
        void Start()
        {
             GameObject g = null;
             for(int i = 0; i < 5; i++)
             {
                 g = GameObject.Instantiate(myPrefab);
                 g.name = "MyPrefab_" + (i+i);
             }
        }
    }
    

    这应该实例化5个游戏对象,名为:

    • 我的预制件2
    • 我的预制件3
    • 我的预制4
    • 我的预制件5
        3
  •  1
  •   Tipx    7 年前

    如果是自动生成的,则该值将由构造函数填充;如果希望对其进行控制,则由Clone方法填充。