近期热门
粉丝3
关注 0
获赞 0
浅谈Unity3d脚本中的开启关闭方法攻略

[U3D] 浅谈Unity3d脚本中的开启关闭方法攻略

[复制链接]
9727 2 0 0 11年前 举报
当程序猿在用制作脚本的时候呢,操作LayerMask的时候,新手常常会有很多不懂,不理解的地方。所以说,对于初学者这个还是有一定难度的,今天小编来给大家稍微介绍下在unity3d中是如何开闭的。希望新人在学习的时候也要有非常积极的态度,不要怕困难,也不要怕难题,捡起一百分的耐心来学习。
    1.首先引入'|'、'&'、'~'的概念
  与(交集):10000001 & 10000100 == 10000000
  
  或(并集):10000001 | 10000100 == 10000101
  
  非(反转):10000001 == ~01111110
  
    2.int myLayerMask = 1 << curLayer;
  等式右侧 curLayer 代表Inspector/Layer中的某一层
  等号左侧是通过一个数来保存多个层的信息
  他是怎么做到的呢?
  其实是用 myLayerMask = 00000000 方式来保存的
  即 myLayerMask = 1 << 3 ---> myLayerMask == 00001000
  这时层级中的第3层被开启,其余层处于关闭状态
  另外,需注意的是,层的序号是从0开始计算的
  因此,上面的Unity3d操作相当于使用二进制方法进行一对多表现方式的转化过程
  
    3.实例讲解
  有了上面铺垫,我们就可以轻松的对多个Unity3d的Layer进行开关了
  1)开启1、2层
  camera.cullingMask = (1 << 1) | (1 << 2);
  2)开启除2层外的所有层
  camera.cullingMask = ~(1 << 2);
  3)开启除1、2、4层外的所有层
  camera.cullingMask = ~((1 << 1) | (1 << 2) | (1 << 4));
  除此之外,再给大家介绍一下unity3d提供的几种光源。
  Directional light平行光:例如太阳光,光线都沿同一个方向照射
  2.Point light 点光源:就是物理中的电光源,朝各个方向的都有,在3D世界中,像室内光,火焰光和自发光物体都可以设为这种
  3.Spot light 汇聚光 光线反向会聚到一点,就像手电筒,可以设定半径值(也就是所谓能照多远吧)

0
点赞
0
打赏
0
添加到收藏夹

0

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论2
您需要登录后才可以回帖 登录

CGJOY网友 
其实我想说写得很好。

10年前
回复

使用道具

说实话,我一个美术来讲,完全没看懂楼主的内容,哈哈
11年前
回复

使用道具 举报

您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器