敌人追踪
This commit is contained in:
1 parent
e839c158ac
commit
1aeaebcddb
17 files changed
+297
-2365
No files matched your search
@@ -42,6 +42,29 @@ private void Awake()
|
||||
|
||||
**边界**:这条只约束游戏运行时代码。编辑器工具、一次性批处理脚本需要按结构查找节点时可以照常查找。
|
||||
|
||||
## Inspector 里的字段名怎么显示成中文
|
||||
|
||||
**`[InspectorName]` 管不了普通字段**:Unity 6 的文档对这个特性写的是 "enum value declarations"(只讲枚举值),实测把 `[InspectorName("...")]` 加在 `[SerializeField]` 字段上,字段的 `displayName` 仍是英文原名。别用它来改字段标签。
|
||||
|
||||
想让字段在 Inspector 里显示中文,只有这几条路:
|
||||
|
||||
1. **中文字段名**(要精确控制标签时用这个)。C# 允许 Unicode 标识符,字段名写中文,Inspector 里就显示这个中文——编辑器不会给中文插空格、术语表也不会翻译它(实测 `NicifyVariableName("可到达半径")` → `可到达半径`)。**改名前必须加 `[FormerlySerializedAs("旧名")]`**:Unity 按字段名反序列化,直接改名会清空 Inspector 里已经接好的引用。
|
||||
|
||||
```csharp
|
||||
// 语义是「玩家可到达的半径」,Inspector 里就显示「可到达半径」
|
||||
[Tooltip("玩家可到达的半径,单位米")]
|
||||
[FormerlySerializedAs("reachableRadius")]
|
||||
[SerializeField] private float 可到达半径 = 5f;
|
||||
```
|
||||
|
||||
2. **自定义 Editor**:`[CustomEditor(typeof(Xxx))]` 里 `EditorGUILayout.PropertyField(prop, new GUIContent("可到达半径"))`。字段少又必须换标签时才用,字段一多就是维护负担。
|
||||
|
||||
3. **不改标签,用 `[Tooltip]` 补说明**:字段名保持英文(项目现状),鼠标悬停能看到中文说明。字段名本身够清楚时,这条就够了。
|
||||
|
||||
**中文名按「这个字段在这个项目里干什么」来定,不要直译英文名**:表示玩家可到达的半径,就写「可到达半径」,不要写成「半径」或「可达半径值」——同一个 Inspector 里经常并列出现好几个半径 / 距离 / 目标,标签本身就得能分清谁是谁。
|
||||
|
||||
**顺带一个坑**:编辑器语言是中文时,Unity 会按**内置术语表**翻译常见字段名(`prefab` → 预制件、`radius` → 半径 之类),只覆盖常见词——字段名一旦不是标准词,标签就原样显示英文。所以 Inspector 上看到的中文未必写在代码里,别去 `.cs` 里搜。
|
||||
|
||||
## 动画一律用 Animator 播,不用 legacy 的 Animation 组件
|
||||
|
||||
要在物体上播放动画时,走 `Animator`(状态 / 触发器 / 参数):
|
||||
|
||||
Reference in new issue
Block a user