【Unity】层(Layer)详解

这篇具有很好参考价值的文章主要介绍了【Unity】层(Layer)详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.什么是Layer?

我们在做游戏开发的时候,尤其是场景比较复杂的时候,我们就需要使用Layer来分类。
比如:
排除不被灯光照亮的Layer
射线检测特定的 Layer
摄像机只能看到某些 Layer
对象之间的碰撞检测 Layer

2.添加Layer

①在Inspector面板中点击 Layer / Add Layer
unity layer,Unity 程序设计,unity,游戏引擎

②在编辑器菜单中,选择Edit / Project Settings / Tags and Layers
unity layer,Unity 程序设计,unity,游戏引擎

3.Layer的原理

Layer是一个int32数值, int32 是一个 32 位的二进制数,所以 Unity 的层也就设置了 32 个(0 ~ 31)。
先把int转成二进制数,每一位代表一个层(如下图),0代表该启用,1代表禁止,所以每个层对应的数值就是 2 的N 次方
比如 UI层排在第5位,那UI的层就是2的5次方=32
unity layer,Unity 程序设计,unity,游戏引擎

4.代码设置Layer

        //根据名称获取层级,返回UI的层级4
        int Layer_UI = LayerMask.NameToLayer("UI");
        //设置对象层级为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设置为Palyer
unity layer,Unity 程序设计,unity,游戏引擎
在场景中新建一个Directional Light
修改颜色为红色(方便测试)
修改Culling Mask为Player
unity layer,Unity 程序设计,unity,游戏引擎
结果如下,Capsule的Layer为Palyer,可以接受光照。
unity layer,Unity 程序设计,unity,游戏引擎

7.Layer用法:相机可见指定层

修改摄像机Culling Mask为Npc
unity layer,Unity 程序设计,unity,游戏引擎
结果如下,Cube的Layer为Npc,所以Game试图只能看见Cube
unity layer,Unity 程序设计,unity,游戏引擎

8.Layer用法:碰撞检测

碰撞检测需要Edit / Project Settings / Physics中设置可碰撞层
打 √ 代表两个层之间是可以发生碰撞检测的
unity layer,Unity 程序设计,unity,游戏引擎文章来源地址https://www.toymoban.com/news/detail-852317.html

到了这里,关于【Unity】层(Layer)详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity UI与粒子 层级问题Camera depth Sorting Layer Order in Layer RenderQueue

    Unity游戏开发中,模型、界面、特效等,需要规划好 layer 的概念,涉及到摄像机(Camera)、画布(Canvas)、Shader等相关内容。 在 Unity 中,渲染顺序是由多个因素共同决定的,大致分为三层优先级: Camera depth、Sorting Layer/Order in Layer 和 RenderQueue 。 一般游戏项目,会创建至少两

    2024年02月08日
    浏览(40)
  • 【Unity】UGUI中Camera Depth,Canvas Sorting Layer、Order in Layer与Particle System渲染层级分析

    目录   前言 一、项目需求 二、Camera 1.Clear Flags 2.Culling Mask  三、Canvas 1.Sorting Layer 2.Order in Layer 四、Particle System 1.Sorting LayerID 与Order in Layer 总结         最近在做项目的过程中,发现项目中的部分3d模型会被粒子特效所遮挡,这并不是笔者想要的效果,于是经过一番面向

    2024年02月05日
    浏览(47)
  • Unity Animator.Play(stateName, layer, normalizedTime) 播放动画函数用法

    接口: 参数 含义 stateName 动画状态机的某个状态名字 layer 第几层的动画状态机,-1 表示播放第一个状态或者第一个哈希到的状态 normalizedTime 从state动画进度的百分比(100%)开始播放到结束 Unity Animator.Play 详解 基于 Animator 制作一个Cube旋转的帧动画 在 Cube 上实现调用 Play(st

    2024年02月13日
    浏览(55)
  • 关于unity中碰撞盒Collider2D中的Layer Overrides属性

    层碰撞矩阵 edit -》 project settings -》physics 2d 配置好一个GameObject之后,设置它的Layer 仅给当前Collider添加可碰撞的额外层。所以当前Collider发生碰撞or触发的层为: 层碰撞矩阵 + include layers 。 仅给当前Collider移除可碰撞的额外层。当前碰撞层级: 层碰撞矩阵 - exclude Layers 。 默

    2024年04月27日
    浏览(38)
  • 跟着cherno手搓游戏引擎【5】layer(层)、Glad

    Layer.h:提供Attach链接、Detach解绑、Update刷新、Event事件、GetName方法 Layer.cpp:随便写写 LayerStack.h:建立用来存储层的栈(用vector)  LayerStack.cpp:看注释,需要解释的有点多  YOTO.h:加一个Layer.h Application.h:Stack实例,Push方法添加层。 Application.cpp:添加Push即可。 SandboxApp.cpp:创建测试

    2024年01月17日
    浏览(44)
  • layer.open属性详解及layer.open弹出框使用post方法

    一、常用属性详解: 例子: 二:layer.open GET方式说明 如下段代码所示,是最常见的layer.open使用方式。这里有几点需要说明: type 基本层类型,layer提供了5种层类型。可传入的值有:0(信息框,默认)、1(页面层)、2(iframe层)、3(加载层)、4(tips层)。 layer.open其底层

    2024年02月16日
    浏览(46)
  • Layer2+Move to earn,MetaTube元宇宙游戏爆发前夜

    2020以来,随着新冠疫情在全球范围内蔓延,对世界经济造成了广泛破坏,“保持社交距离”的相关禁令、“减少公共场所聚集与活动”的警惕心理,使消费和商业活动遭受重创。 但全球电子游戏产业却仍在蓬勃发展。“宅”族人群寻求社交互动的需求增长,游戏为其提供了

    2024年02月08日
    浏览(38)
  • SSL(Secure Sockets Layer)安全套接层协议详解

    SSL(Secure Sockets Layer 安全套接层)协议 ,及其继任者 TLS(Transport Layer Security传输层安全)协议 ,是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密,用于保障网络数据传输安全,利用数据加密技术,确保数据在网络传输过程中不会被截取

    2023年04月09日
    浏览(39)
  • 详解Layer 2扩展解决方案Optimism(OP)是如何工作的?|Tokenview

    Optimism是一个快速、稳定、可扩展和低成本的以太坊Layer 2区块链。这意味着它在以太坊区块链(Layer1)之上运行,以帮助缓解拥塞,进而降低交易成本和处理时间。作为现有以太坊软件的最小扩展,Optimism的EVM-equivalent 架构可以扩展以太坊应用程序。如果它能在以太坊上工作

    2024年02月06日
    浏览(40)
  • Java拼图小游戏------《Java程序设计》课程设计

    目录 1.1 研究的背景  1.2 研究的意义  1.3 国内外研究现状  国内研究现状: 国外研究现状:          2.1 Java技术          2.2 GUI技术           2.3 内容设计要求及算法的实现 内容: 要求: 设计算法实现:          3.1设计流程图          3.2系统界面展示          

    2024年02月04日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包