C# 实例化对象和更改其图层时出现问题

C# 实例化对象和更改其图层时出现问题,c#,unity3d,instantiation,layer,gameobject,C#,Unity3d,Instantiation,Layer,Gameobject,我尝试了以下步骤 1.-以我想要实例化的游戏对象为例 public GameObject Arrow 2.-将另一个游戏对象作为参考来生成它 public GameObject A 3.-然后,在我的代码中的某个点,用生成的游戏对象坐标和旋转来实例化它 Instantiate (Arrow, A.transform.position, A.transform.rotation); 4.-最后更改实例化游戏对象的层,以匹配生成游戏对象的层 Arrow.layer = A.layer; 我

我尝试了以下步骤

1.-以我想要实例化的游戏对象为例

public GameObject Arrow
2.-将另一个游戏对象作为参考来生成它

public GameObject A
3.-然后,在我的代码中的某个点,用生成的游戏对象坐标和旋转来实例化它

Instantiate (Arrow,  A.transform.position, A.transform.rotation);
4.-最后更改实例化游戏对象的层,以匹配生成游戏对象的层

Arrow.layer = A.layer;
我在几个游戏对象上有相同的脚本,繁殖点,它是公共的,可以互换,我可以在我准备好的几个不同位置和层之间进行选择

这样做的结果是所有实例化的对象都在同一点生成,并且具有错误的层。他们取而代之的是上面的1层,例如:一个应该有B层的现在有A层, 另一个应该是C层的现在是B层


我做错什么了吗?我所做的和我认为的一样吗

如果要引用实例化游戏对象,必须将其分配给变量,如下所示:

GameObject _oMyNewInstance = (GameObject) Instantiate (Arrow,  A.transform.position, A.transform.rotation);
因此,您可以使用该变量指定图层并执行其他操作:

_oMyNewInstance.layer = A.layer;

语句
Arrow.layer=A.layer更改预置/游戏对象模板的层(这就是为什么您的obj B有一个层,而obj C有B层)

如果您想引用实例化游戏对象,您必须将其分配给一个变量,如下所示:

GameObject _oMyNewInstance = (GameObject) Instantiate (Arrow,  A.transform.position, A.transform.rotation);
因此,您可以使用该变量指定图层并执行其他操作:

_oMyNewInstance.layer = A.layer;

语句
Arrow.layer=A.layer更改预制/游戏对象模板的层(这就是为什么你的obj B有一个层,而obj C有B层)

有些事情看起来很奇怪-变量“arrow”必须是“arrow”,而不是“arrow”。你必须展示你的全部实际代码,才能得到帮助!你能发布一些代码吗?请显示所有相关代码。有些事情看起来很奇怪-变量“arrow”必须是“arrow”,而不是“arrow”。你必须展示你的全部实际代码,才能得到帮助!你能发布一些代码吗?请显示所有相关代码。