实例化对象和更改其层的麻烦

trouble instantiating an object and changing its layer

我尝试了以下步骤;

1.- 取我要实例化的GameObject

public GameObject Arrow

2.- 以另一个 GameObject 作为参考来生成它

public GameObject A

3.- 然后,在我的代码中的某个时刻,使用生成的 GameObject 坐标和旋转实例化它

Instantiate (Arrow,  A.transform.position, A.transform.rotation);

4.- 最后更改实例化游戏对象的层以匹配生成游戏对象的层

Arrow.layer = A.layer;

我将相同的脚本附加到几个游戏对象,出生点,public,它是可以互换的,我可以在我准备的几个不同位置和层之间进行选择。

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

我是不是做错了什么,我所做的是否符合我的想法?

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

GameObject _oMyNewInstance = (GameObject) Instantiate (Arrow,  A.transform.position, A.transform.rotation);

那么你就可以使用变量来分配图层并做其他事情了:

_oMyNewInstance.layer = A.layer;

语句Arrow.layer = A.layer;更改prefab/GameObject模板的层(这就是为什么你的对象B有A层而对象C有B层)