7. 组件,给物体装能力
上一章验证过一件事:关掉 Mesh Renderer 物体隐形,拿掉 Collider 玩家穿过去。能力是组件给的,不是物体本身有的。
这章正式看 Component 这套系统。
拆解一个 Cube
Section titled “拆解一个 Cube”新建一个 Cube,选中它看 Inspector,会看到四个组件叠在一起:
- Transform:位置、旋转、大小。每个物体的标配,删不掉。
- Mesh Filter:存几何数据(「我是一个立方体」)。
- Mesh Renderer:负责把它画出来(「让我可见」)。
- Box Collider:负责物理边界(「踩到我会停」)。
每个组件只管一件事,这是 Unity 的「单一职责」。所以可以只要视觉不要碰撞(天上飘着的装饰云),也可以只要碰撞不要视觉(隐形的空气墙)。
Add Component:按需加能力
Section titled “Add Component:按需加能力”Inspector 底部有一个 Add Component 按钮。点它,搜关键字,就能给物体加上新能力:
Light:物体开始发光。Audio Source:能播声音。Rigidbody:获得重力,会下坠和碰撞。Sphere Collider:加一个球形碰撞边界。
不需要一开始就记住上千种组件。只要记住一个直觉:想让物体有某种能力,去 Add Component 搜对应的组件。
VRChat 世界里常用的组件大体就这些:
| 组件 | 干什么 | 常见场景 |
|---|---|---|
| Light | 发光 | 灯具、霓虹、氛围光 |
| Audio Source | 播声音 | 背景音乐、音效、环境音 |
| Collider(Box / Sphere / Mesh) | 物理碰撞与点击区域 | 地板、墙壁、按钮 |
| Rigidbody | 重力与物理模拟 | 可推倒的杯子、可滚的球 |
| Animator | 平滑运动 | 开关门动画、电梯、风扇 |
| Udon Behaviour | 自定义交互逻辑 | 开关灯、传送玩家 |
| VRC Pickup | 可拾取 | 让玩家拿起物品 |
| VRC Object Sync | 多人位置同步 | 让所有人看到同一个被丢出去的物体 |
在 Inspector 里调参数
Section titled “在 Inspector 里调参数”组件挂上后,到 Inspector 里调参数。
比如给一个球加 Light,Inspector 会出现这些:
Type:Point像灯泡向四周散光,Spot像手电筒打锥形光束,Directional像太阳平行照亮一切。Color:光的颜色。Intensity:亮度。Range:照射半径。
再比如 Audio Source:
Audio Clip:放哪个音频文件。Play On Awake:场景加载时是否自动播放。Loop:循环播放(适合背景音和雨声)。Spatial Blend:0= 2D 全场等响,1= 3D 离远了变小。
没必要背字段表,先看到了再说,常用的那几个反复调一调就熟了。
引用槽:最容易卡的一关
Section titled “引用槽:最容易卡的一关”有些组件参数不是数值字段,而是一个写着 None (Object) 的空槽。
举例:写了一个按钮脚本,脚本上有一个 Target Light 字段。点按钮的时候要控制哪盏灯,脚本不知道,必须把 Hierarchy 里那盏具体的灯拖进这个空槽。这叫显式指定引用。
删组件之前停一下
Section titled “删组件之前停一下”不要某个组件了,点它右上角的三个点,选 Remove Component。
但删之前停一秒,有没有别的逻辑在依赖它?
拿掉 Collider,玩家穿过去,点击交互也失效。拿掉 Mesh Renderer,看不见了,材质和特效都没了。拿掉 Rigidbody,依赖物理的行为全部消失。
不确定后果就先取消勾选(临时禁用)测一下,没问题再删。
Play Mode 调参的陷阱
Section titled “Play Mode 调参的陷阱”Unity 顶部那个三角形按钮是 Play Mode,按下去场景会在编辑器里运行起来。在里面可以随便改参数看效果:灯不够亮拉 Intensity,声音吵就调 Volume,画面立刻响应。
但有一条铁律:退出 Play Mode 后,里面调的所有改动全部还原。
正确的工作流:进 Play Mode 调,找到满意数值后记下来;退出 Play Mode(数值会还原);在正常编辑状态下把数值填回去,按 Ctrl+S 保存。
VRChat SDK 自带的那批组件
Section titled “VRChat SDK 自带的那批组件”装上 VRChat SDK 后,工具箱里多了一批 VRC 开头的组件:
VRC Pickup:让玩家能拿起物品。VRC Object Sync:多人同步物体位置。VRC Spatial Audio Source:3D 空间音效,离远了变小。VRC Mirror Reflection:生成镜子。VRC Station:让椅子、沙发能坐下。
下一章学 Prefab,配好的物体怎么做成模具,改一处全场同步。