相信大家都碰到过类似这种表达式, int myLayerMask = 1 << currentLayer;
下面我们就做一个关于layermask的探究实验。
public int moveLayer=8; public LayerMask mask; //外部赋值UIlayer
void Start () {
moveLayer = 1 << moveLayer; Debug.Log( LayerMask.NameToLayer("Deafult")); Debug.Log(moveLayer); Debug.Log(mask.value); }
经过探究我们会发现:
LayerMask.NameToLayer("Default") 输出0,这是跟layer层里的数字想对应的。
moveLayer 输出为256,1<<8,“<<“为左移符,1的2进制表示为0001,左移8位,即100000000,即2的8次方。
mask.value 输出为 256,也就是说UI.value跟1<<8是相等的,即可用这种方法表示layermask。
|