我正在尝试使用Unity 4.2制作MMO游戏,我可以成功构建它,但是当我玩Unity时,我收到了几个警告,例如:
游戏对象只能在一个图层中。 Layer需要在[0 .... 31]范围内UnityEngine.Gameobject:set_layer(int32)
有人可以帮我解决这些问题吗?
答案 0 :(得分:1)
Unity中的图层被定义为整数蒙版。这本质上意味着它们是在引擎内部通过整数值定义的,其中设置了一个位。
因此,如果将图层设置为值0,则实际的蒙版整数值为1 << 0
。或者,如果将其设置为2,则存储的实际整数掩码值为1 << 2
。不应该想象为什么你只能有32个不同的层。毕竟,整数中有32位。
因此,请检查您设置图层的内容,看看它们是否在范围内。
答案 1 :(得分:1)
似乎GameObjects和LayerMasks的工作方式不同,抛出的错误也是错误的。对于光线投射/图层掩模使用比特移位技巧(1 <&lt; 13)和对于游戏对象(.layer)使用shiftcount(13),我知道它没有意义,但两者都不同。我只是浪费了半个小时。