查看: 951|回复: 2
打印 上一主题 下一主题

[其他] Unity之layermask探究

[复制链接]

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53488
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2015-6-27 01:11:06 |只看该作者 |倒序浏览
相信大家都碰到过类似这种表达式,
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。

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

无效楼层,该帖已经被删除

47

主题

2

听众

2810

积分

中级设计师

Rank: 5Rank: 5

纳金币
571
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2015-6-27 08:34:10 |只看该作者
那又说明什么?说明是位操作?你怎么研究的,整个没有分析清机理吗,为什么要移,你搞懂没
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-8-17 10:13 , Processed in 0.067354 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部