Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当被实例化时,游戏对象显示为克隆。有没有办法识别每个克隆?_C#_Unity3d - Fatal编程技术网

C# 当被实例化时,游戏对象显示为克隆。有没有办法识别每个克隆?

C# 当被实例化时,游戏对象显示为克隆。有没有办法识别每个克隆?,c#,unity3d,C#,Unity3d,考虑一个多维数据集。最初,该多维数据集通过拖动到项目窗口转换为预置,并从层次结构中删除。现在,该预置正在实例化。因此,当它实例化几次时,所有实例化的游戏对象都将具有名称多维数据集(克隆)。有没有一种方法可以像识别任何独特功能一样识别这些克隆。有几种方法。在inspector中单击它们将在场景视图中显示它们,反之亦然,但您也可以通过脚本来增加某种ID,此方法将代替实例化 int id = 0; for ( int i = 0; i<5; i++)

考虑一个多维数据集。最初,该多维数据集通过拖动到项目窗口转换为预置,并从层次结构中删除。现在,该预置正在实例化。因此,当它实例化几次时,所有实例化的游戏对象都将具有名称多维数据集(克隆)。有没有一种方法可以像识别任何独特功能一样识别这些克隆。

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

int id = 0;

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

对于(int i=0;i有几种方法。在inspector中单击它们将在场景视图中显示它们,反之亦然,但您也可以通过脚本来增加某种ID,此方法将代替您的实例化

int id = 0;

                for ( int i = 0; i<5; i++)
                {
                    GameObject yourob = Instantiate(obj) as GameObject;
                    yourob.gameObject.name = "Object " + id;
                    id++;
                }
intid=0;
对于(inti=0;i你可以这样做

示例:

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);
         }
    }
}
公共类MyClass:MonoBehavior
{
[序列化字段]
游戏对象预制;
void Start()
{
游戏对象g=null;
对于(int i=0;i<5;i++)
{
g=游戏对象。实例化(myPrefab);
g、 name=“MyPrefabride_”+(i+i);
}
}
}
这将实例化5个游戏对象,命名为:

  • 我的预制件1
  • 我的预制件2
  • 我的预制件3
  • 我的预制件4
  • 我的预制件5
    • 您可以这样做

      示例:

      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);
               }
          }
      }
      
      公共类MyClass:MonoBehavior
      {
      [序列化字段]
      游戏对象预制;
      void Start()
      {
      游戏对象g=null;
      对于(int i=0;i<5;i++)
      {
      g=游戏对象。实例化(myPrefab);
      g、 name=“MyPrefabride_”+(i+i);
      }
      }
      }
      
      这将实例化5个游戏对象,命名为:

      • 我的预制件1
      • 我的预制件2
      • 我的预制件3
      • 我的预制件4
      • 我的预制件5

      如果您想直接通过名称以外的其他内容来标识对象,则始终可以向这些对象添加字段或属性,并将其显示在关联的编辑器(或默认编辑器)中


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

      如果希望直接通过名称以外的内容来标识对象,则始终可以向这些对象添加字段或属性,并将其显示在关联的编辑器(或默认编辑器)中


      如果自动生成,该值将由构造函数填充,如果您想控制它,则由克隆方法填充。

      这与我的答案非常接近@Chawy。虽然功能强大且清晰,但回答很好。谢谢@PrinceOfRavens,在我单击“发布”按钮后,刚刚注意到您的答案哈哈。是的,我们也有类似的答案。这是pretty很接近我的答案@Chawy。虽然功能和干净,回答很好。谢谢@PrinceOfRavens,在我点击post按钮后就注意到了你的答案。是的,我们也有类似的答案。