【Unity】层(Layer)详解

1.什么是Layer?

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

2.添加Layer

①在Inspector面板中点击 Layer / Add Layer
在这里插入图片描述

②在编辑器菜单中,选择Edit / Project Settings / Tags and Layers
在这里插入图片描述

3.Layer的原理

Layer是一个int32数值, int32 是一个 32 位的二进制数,所以 Unity 的层也就设置了 32 个(0 ~ 31)。
先把int转成二进制数,每一位代表一个层(如下图),0代表该启用,1代表禁止,所以每个层对应的数值就是 2 的N 次方
比如 UI层排在第5位,那UI的层就是2的5次方=32
在这里插入图片描述

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
在这里插入图片描述
在场景中新建一个Directional Light
修改颜色为红色(方便测试)
修改Culling Mask为Player
在这里插入图片描述
结果如下,Capsule的Layer为Palyer,可以接受光照。
在这里插入图片描述

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

修改摄像机Culling Mask为Npc
在这里插入图片描述
结果如下,Cube的Layer为Npc,所以Game试图只能看见Cube
在这里插入图片描述

8.Layer用法:碰撞检测

碰撞检测需要Edit / Project Settings / Physics中设置可碰撞层
打 √ 代表两个层之间是可以发生碰撞检测的
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/273776.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

玩转电商新趋势!淘宝商品评论电商API接口助你一臂之力

电子商务行业的快速发展带动了淘宝、京东等电商平台火爆的商品销售&#xff0c;同时也带来了海量的商品评论数据。这些评论数据蕴含着用户的购物心得和消费体验&#xff0c;成为商家了解市场需求、改进产品、提升用户体验的重要依据。然而&#xff0c;海量的评论数据如何高效地…

RPC学习笔记一

什么是RPC RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种用于实现分布式系统中不同计算机或进程之间进行通信和调用的技术和模式。 在传统的过程调用中&#xff0c;当一个程序需要调用另一个程序的函数或方法时&#xff0c;通常是在同一台…

图论题目集一(代码 注解)

目录 题目一&#xff1a; 题目二&#xff1a; 题目三&#xff1a; 题目四&#xff1a; 题目五&#xff1a; 题目六&#xff1a; 题目七&#xff1a; 题目一&#xff1a; #include<iostream> #include<queue> #include<cstring> using namespace st…

使用rrweb悄悄录制用户操作过程

文章目录 一、前言1.1、难点1.2、调研二、`rrweb`2.1、效果展示2.2、基本使用(vue示例)2.2.1、`HTML`2.2.2、`JS`2.3、上传 & 优化三、原理四、源码五、最后一、前言 在做项目监控埋点中,有些时候很不好复现用户操作的步骤。这时就需要做一些用户行为的记录,主要是为了更…

蓝桥杯决赛2023 RE CyberChef2

思路很清晰&#xff0c;爆IV 各种格式转换和删除padding非常麻烦&#xff0c;不过终于还是调出来了 #Cyber2 wp from Crypto.Cipher import DES, AES from Crypto.Util.Padding import pad, unpad key_des b0a0b0c0d cipher bytes.fromhex("416935cabeb8e30cd9b56d…

抖音视频爬虫工具安装|视频无水印批量下载软件

抖音视频批量下载工具安装教程 想要快速、便捷地批量下载抖音视频吗&#xff1f;不用担心&#xff0c;我们为您提供了简单易行的安装教程&#xff0c;让您轻松体验抖音视频的下载乐趣。q1977470120跟随以下步骤&#xff0c;一起来安装抖音视频批量提取工具吧&#xff01; 步骤…

递归算法c++

主页:(*∇&#xff40;*) 咦,又好了~ xiaocr_blog 算法概述&#xff1a;递归算法是一种直接或者间接调用自身函数或者方法的算法。说简单了就是程序自身的调用。 算法实质&#xff1a;递归算法就是将原问题不断分解为规模缩小的子问题&#xff0c;然后递归调用方法来表示问题的…

bs4模块

bs4解析——HTML语法 HTML(Hyper Text Markup Language)超⽂本标记语⾔, 是我们编写⽹⻚的最基本也是最核⼼的⼀种语⾔. 其语法规则就是⽤不同的标签对⽹⻚上的内容进⾏标记, 从⽽使⽹⻚显示出不同的展示效果 <h1>哈哈哈 </h1> 上述代码的含义是在页面中显示"…

React的基本使用

安装VSCode插件 ES7 Reactopen in browser React基本使用 基本使用步骤 引入两个JS文件&#xff08; 注意引入顺序 &#xff09; <!-- react库, 提供React对象 --> //本地 <script src"../js/react.development.js"></script> //线上 //<scr…

嵌入式学习40-数据结构

数据结构 1.定义 一组用来保存一种或者多种特定关系的 数据的集合&#xff08;组织和存储数据&#xff09; 程序的设计&#xff1a; …

MindGraph:文字生成知识图

欢迎来到MindGraph&#xff0c;这是一个概念验证、开源的、以API为先的基于图形的项目&#xff0c;旨在通过自然语言的交互&#xff08;输入和输出&#xff09;来构建和定制CRM解决方案。该原型旨在便于集成和扩展。以下是关于X的公告&#xff0c;提供更多背景信息。开始之前&a…

电机学(笔记一)

磁极对数p&#xff1a; 直流电机的磁极对数是指电机定子的磁极对数&#xff0c;也等于电机电刷的对数。它与电机的转速和扭矩有直接关系。一般来说&#xff0c;极对数越多&#xff0c;电机转速越低&#xff0c;扭矩越大&#xff0c;适用于低速、高扭矩的场合&#xff1b;相反&…

Machine Learning ---- Gradient Descent

目录 一、The concept of gradient&#xff1a; ① In a univariate function&#xff1a; ②In multivariate functions&#xff1a; 二、Introduction of gradient descent cases&#xff1a; 三、Gradient descent formula and its simple understanding: 四、Formula o…

万界星空科技WMS仓储管理包含哪些具体内容?

wms仓库管理是通过入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能&#xff0c;综合批次管理、物料对应、库存盘点、质检管理、虚仓管理和即时库存管理等功能综合运用的管理系统&#xff0c;有效控制并跟踪仓库业务的物流和成本管理全过程&#xff0c;实现完善的企业仓…

如何系统地自学 Python?

目录 Python 数据类型 控制结构 函数和模块 文件操作 异常处理 类和对象 列表推导式和生成器 匿名函数和高阶函数 面向对象编程 总结 Python Python是一种面向对象、解释型计算机程序设计语言&#xff0c;由Guido van Rossum于1989年发明&#xff0c;第一个公开发行…

【iOS】Blocks

文章目录 前言一、什么是Blocks二、Blocks模式1.Block语法2.Block类型变量3.截获自动变量值4.__block说明符5.截获的自动变量 三、Blocks的实现1.Block的实质__main_block_impl_0Block对象的实现结构体初始化 2.截获自动变量值3.__block说明符4.Block存储域5.__block变量存储域…

C#进阶实践项目(俄罗斯方块)

CSharp进阶实践项目--俄罗斯方块 1.需求分析 2.复用贪吃蛇开始等场景切换的代码 &#xff08;自己写一遍&#xff0c;不难&#xff01;&#xff01;&#xff01;&#xff09; 入口&#xff1a; 更新接口&#xff1a; Game 类&#xff1a; BeginOrEndBaseScene 类&#xff1a;…

Ubuntu使用Docker部署Nginx容器并结合内网穿透实现公网访问本地服务

目录 ⛳️推荐 1. 安装Docker 2. 使用Docker拉取Nginx镜像 3. 创建并启动Nginx容器 4. 本地连接测试 5. 公网远程访问本地Nginx 5.1 内网穿透工具安装 5.2 创建远程连接公网地址 5.3 使用固定公网地址远程访问 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#…

云原生 PaaS 服务:构建现代应用的利器(分布式应用服务、配置中心、数据库服务、定时任务、实时监控、服务网关、技术组件)

在当今数字化时代&#xff0c;企业需要面对不断变化的市场需求和竞争压力&#xff0c;以及日益复杂的应用开发和部署挑战。在这样的背景下&#xff0c;云原生 PaaS&#xff08;Platform as a Service&#xff09;服务应运而生&#xff0c;为企业提供了一种现代化的应用开发和部…

【备忘录】查询数据库中是否存在数据 的SQL语句性能对比和优化

原作者&#xff1a;码农Academy 原文地址 文章目录 引言COUNT()函数的局限性EXISTS子句的优势LIMIT 1 优势适用场景总结 在仅仅需要判断数据库中是否存在满足特定条件的记录时&#xff0c;使用EXISTS子句或带有LIMIT 1的查询不仅能够提高查询效率&#xff0c;减少资源消耗&…
最新文章