C# 实例化对象和更改其图层时出现问题
我尝试了以下步骤 1.-以我想要实例化的游戏对象为例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; 我
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”。你必须展示你的全部实际代码,才能得到帮助!你能发布一些代码吗?请显示所有相关代码。