c# - 访问 Unity 层的名称
问题描述
只是想知道 Unity 中给定层的实际名称存储在哪里。在检查相关场景的 YAML 文件时,我在图层上能找到的唯一提示是游戏对象的“m_Layer”值由 0-31 形式的数字分配给它们,而不是带有图层实际名称的字符串。因此,在编辑器内部或外部设置 GameObject 的图层非常简单,使用快速脚本让相机遮盖某些图层也没问题,但我真的很想知道我是否可以通过另一个 YAML 自己编辑图层或类似文件。
有没有办法在编辑器之外访问和/或修改项目的图层名称信息,可能在库、包或项目设置文件夹中?
解决方案
如果您正在寻找包含该信息的文件,它位于ProjectSettings/TagManager.asset 中(在“ layers: ” yaml 块下)。它们按数字顺序列出。该文件包含图层和标签,但出于某些(可能是遗留)原因仅命名为“TagManager”。
如果您正在寻找具有该信息的 API,则可以使用LayerMask
同时具有 aLayerToName
和方法的静态方法NameToLayer
。
推荐阅读
- python - 人脸识别未安装在 python 3.7 中
- r - R合并具有相同行名和列名的行
- php - PHP - $_POST SQL 查询未使用正确值更新列
- javascript - 单击单选按钮隐藏另一个组件
- python - (python)如何在包含整数的列表中找到连续数字集
- swift - 检查 collectionViewCell 是否在 collectionView 上显示超过 50%
- docker - 如何在 Dockerfile 本身中设置断点?
- java - 我的自定义异常没有被抛出,而是 ArrayOutOfBoundsException 被抛出(JunitTest 错误)
- apache-spark - 如果内存无法保存数据,广播 DataFrame 是否会将数据溢出到磁盘?
- r - 通过根据另一行中另一列的值向数据框中添加列来匹配数据