麻烦实例化对象并更改其图层

时间:2016-07-17 19:58:43

标签: c# unity3d instantiation layer gameobject

我尝试了以下步骤;

1.-参加我想要实例化的GameObject

public GameObject Arrow

2.-将另一个GameObject作为参考来产生它

public GameObject A

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

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

4.-最后更改实例化Gameobject的图层以匹配spawn Gameobject的图层

Arrow.layer = A.layer;

我有几个游戏对象的相同脚本,即生成点,它是公共的,它可以互换,我可以选择其中几个我用不同的位置和图层准备的游戏。

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

我做错了什么,我做过的事情做了我认为的事情吗?

1 个答案:

答案 0 :(得分:2)

如果你想要一个Instantiate GameObject的引用,你必须将它分配给一个变量,如下所示:

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

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

_oMyNewInstance.layer = A.layer;

语句Arrow.layer = A.layer;更改预制/ GameObject模板的图层(这就是为什么你的obj B有A层而obj C有B层的原因)