Unity不熟悉API踩过的坑

49 篇文章 1 订阅

一、Camera设置渲染层级问题

如果想动态设置Camera的渲染层级,在网上搜索大概都有这样几个示例:

camera.cullingMask = 1 << x;  // 渲染x层 

camera.cullingMask = ~(1 << x);  // 渲染除去层x的所有层

camera.cullingMask &= ~(1 << x); // 关闭层x

camera.cullingMask |= (1 << x);  // 打开层x

camera.cullingMask = 1 << x + 1 << y + 1 << z; // 摄像机只显示第x层,y层,z层.(最开始以为运算顺序是1 <<( x + 1 )<<(y + 1) << z)

但是最后一个这样设置,如果想渲染多个层级真的是这样的吗?我Unity5.6代码这样写之后没有得到我想要的结果。然后看了一下cullingMask 设置参数的原理,是用的位运算来确定哪些层级被选中,记得大学老师讲C++的时候讲过这种方法。想了一下,觉得参数应该这样设置:

camera.cullingMask = (1 << x )+ (1<< y )+ (1 << z); // 摄像机只显示第x层,y层,z层.

试了一下,是我想要的效果。

---------2019.03.21更新(Start)------

摄像机显示多个层级:

camera.cullingMask = (1 << LayerMask.NameToLayer("UI")) | (1 << LayerMask.NameToLayer("effect"));

camera.cullingMask = (1 << LayerMask.NameToLayer("UI")) + (1 << LayerMask.NameToLayer("effect"));

可以使用LayerMask.GetMask

camera.cullingMask = LayerMask.GetMask("UI", "effect");

---------2019.03.21更新(End)------

二、Transform.SetParent第二个参数的坑

可能是当时学习Unity的时候没有仔细,后来才发现这样的问题:Unity中Transform.SetParent第二个参数的使用

三、Unity编辑器下某些方法执行结果与预期不同

发现这个问题是想学习一下编辑器的东西:Unity编辑器下某些方法执行结果与预期不同

四、C#中Split的使用

C#中Split的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值