Unity Layer系统详解:从基础概念到实战应用
创作时间:
作者:
@小白创作中心
Unity Layer系统详解:从基础概念到实战应用
引用
CSDN
1.
https://m.blog.csdn.net/qq_30144243/article/details/136832997
在Unity游戏开发中,Layer系统是一个非常重要的概念,它可以帮助开发者更高效地管理场景中的各种对象。本文将详细介绍Layer的基本概念、添加方法、原理,以及在射线检测、灯光、相机、碰撞检测等场景中的具体应用。
1.什么是Layer?
在游戏开发中,尤其是在场景比较复杂的情况下,我们需要使用Layer来对场景中的对象进行分类。例如:
- 排除不被灯光照亮的Layer
- 射线检测特定的 Layer
- 摄像机只能看到某些 Layer
- 对象之间的碰撞检测 Layer
2.添加Layer
方法一:在Inspector面板中添加
在Inspector面板中点击 Layer / Add Layer
方法二:在编辑器菜单中添加
在编辑器菜单中,选择Edit / Project Settings / Tags and Layers
3.Layer的原理
Layer实际上是一个int32数值,int32是一个32位的二进制数,因此Unity的Layer系统设置了32个Layer(从0到31)。每个Layer对应一个二进制位,0表示启用,1表示禁止。每个Layer对应的数值就是2的N次方。
例如,UI层排在第5位,那么UI的Layer值就是2的5次方,即32。
4.代码设置Layer
可以通过以下代码设置对象的Layer:
// 根据名称获取Layer
int Layer_UI = LayerMask.NameToLayer("UI");
// 设置对象的Layer为UI
gameObject.layer = Layer_UI;
5.Layer用法:射线检测指定层
下面是一个使用Layer进行射线检测的例子:
// 指定第4层和第5层
int layers = (1 << 4) | (1 << 5);
// 忽略第4层
//int ignoreLayers = ~(1 << 4);
// 射线检测layers层
Ray mouseRay = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitdist;
if (Physics.Raycast(mouseRay, out hitdist, 100, layers))
{
// 处理检测结果
}
6.Layer用法:灯光照亮指定层
在场景中新建一个Cube,Layer设置为Npc
在场景中新建一个Capsule,Layer设置为Player
在场景中新建一个Directional Light
修改灯光的颜色为红色(方便测试)
修改灯光的Culling Mask为Player
结果如下,Capsule的Layer为Player,可以接受光照。
7.Layer用法:相机可见指定层
修改摄像机的Culling Mask为Npc
结果如下,Cube的Layer为Npc,所以Game试图只能看见Cube。
8.Layer用法:碰撞检测
碰撞检测需要在Edit / Project Settings / Physics中设置可碰撞层
打 √ 代表两个层之间是可以发生碰撞检测的
热门推荐
《侠盗猎车手》载具系统深度解析:从初代到GTA6的进化之路
江东十二虎臣谁的能力最强?谁的死对孙权打击最大?
周泰与韩当一起上都没打过许褚,为何都被列入名将行列?
东吴十二虎臣都有谁?
父母不和,孩子心理健康亮红灯?
《征服》演员玩转短视频:从“悍匪”到网红
《征服》20周年:刘华强"小弟"们的今昔对比
《征服》演员短视频互动引爆怀旧热潮
杭温高铁通车,杭州至温州缩至87分钟,沿线景点全攻略
杭温高铁即将开通,沿线9站景点美食抢先看
杭温高铁今日开通,杭州至温州最快87分钟可达
杭温高铁今日开通,温州至杭州最快85分钟可达
冬日打卡夫子庙大成殿:感受千年儒风
探访南京夫子庙:千年古庙展新颜
新年打卡南京夫子庙,这些摄影点位不容错过!
秋日南京夫子庙夜景打卡攻略:避开人流,捕捉最美夜色
杭州十大打卡景点,大庆游客必看攻略
大庆到杭州自驾游,全程攻略新鲜出炉!
大庆到杭州自驾游:车辆准备全攻略
浙大等机构开发LiAIDS系统,AI助力肝脏病变精准诊断
长时间工作真的会“要命”?
饭局提前离场攻略:既不失礼又不尴尬的告别技巧
《无耻混蛋》:欲望与禁忌的视觉盛宴
《无耻混蛋》:昆汀的另类二战叙事
沙棘提取物:心血管疾病防治的新选择
沙棘:心血管健康的天然守护者
秋冬护肤,中年男性的正确打开方式
辽宁葫芦岛:14公里金色沙滩等三大海滨胜地
葫芦岛双璧:一座明代古城,一段水上长城
葫芦岛三大网红打卡地:从辽西第一大峡谷到关东雪乡