Unity中的“游戏对象只能在一个层中”错误

时间:2013-09-01 11:55:45

标签: unity3d

我正在尝试使用Unity 4.2制作MMO游戏,我可以成功构建它,但是当我玩Unity时,我收到了几个警告,例如:

  

游戏对象只能在一个图层中。 Layer需要在[0 .... 31]范围内UnityEngine.Gameobject:set_layer(int32)

有人可以帮我解决这些问题吗?

2 个答案:

答案 0 :(得分:1)

Unity中的图层被定义为整数蒙版。这本质上意味着它们是在引擎内部通过整数值定义的,其中设置了一个位。

因此,如果将图层设置为值0,则实际的蒙版整数值为1 << 0。或者,如果将其设置为2,则存储的实际整数掩码值为1 << 2。不应该想象为什么你只能有32个不同的层。毕竟,整数中有32位。

因此,请检查您设置图层的内容,看看它们是否在范围内。

答案 1 :(得分:1)

似乎GameObjects和LayerMasks的工作方式不同,抛出的错误也是错误的。对于光线投射/图层掩模使用比特移位技巧(1 <&lt; 13)和对于游戏对象(.layer)使用shiftcount(13),我知道它没有意义,但两者都不同。我只是浪费了半个小时。