纳金网

标题: Unity之layermask探究 [打印本页]

作者: 烟雨    时间: 2015-6-27 01:11
标题: Unity之layermask探究
相信大家都碰到过类似这种表达式,
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。


作者: KISS2015    时间: 2015-6-27 08:34
那又说明什么?说明是位操作?你怎么研究的,整个没有分析清机理吗,为什么要移,你搞懂没




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5