U
Unity
星辰学院
首页
课程表
章节导览
第 1 课
返回主站
首页
/
第 14 章 · 3D 游戏进阶
/
第 241 课
LESSON 241 · 3D 游戏进阶
3D 角色换装系统
换装系统完成。下一课做角色布娃娃实战。
⏱ 约 15 分钟
📊 难度:
入门
🗂 第 14 章 · 3D 游戏进阶
📍 第 241 / 300 课
课程进度
241 / 300
🎯
本节学习目标
实现武器挂点
实现装备切换
实现颜色换装
🚀
课程导读
“给角色换武器换衣服”是 RPG 标配。本课实现三类换装:挂点、切换、变色。
◆
武器挂点与装备
武器“拿”在手里。
【挂点】在角色手上/背上建空对象:Hand_R / Back,作为装备挂点。
【装备模型】武器模型预制体。
【代码装备】
public Transform handPoint;
private GameObject currentWeapon;
public void EquipWeapon(GameObject weaponPrefab) {
if (currentWeapon != null) Destroy(currentWeapon);
currentWeapon = Instantiate(weaponPrefab, handPoint.position, handPoint.rotation, handPoint);
}
【说明】Instantiate 时传父物体=挂点,武器跟随手。
【多装备】武器/盾牌/背包各一个挂点。
【切换】按 1/2/3 切换不同武器(EquipWeapon 换预制体)。
【动画配合】不同武器切不同攻击动画(状态机参数)。
【测试】角色拿上剑、切换盾牌。
【注意】挂点位置在骨骼下(动动手跟着动)。
【完成】装备系统“上手”了!
💡
换武器 = 手部挂点 + Instantiate 挂父 + 切换销毁重建。三行。
◆
颜色与部件换装
换色、换部件。
【颜色换装】改材质颜色:
Renderer r = GetComponentInChildren<Renderer>();
r.material.color = Color.red;
【多材质】r.materials[i].color 换指定部位(衣服/裤子分材质槽)。
【部件换装】换身体部件:
GameObject[] parts; // 各部位预制体
public void SetPart(int partIndex, GameObject newPart) {
// 隐藏旧的,实例化新的并挂到对应骨骼挂点
}
【实现】每个部位(头/身/腿)有多个可选模型,切换。
【数据】用 ScriptableObject 定义装备(名字/模型/属性)(第 85 课)。
【背包联动】背包选装备 → 角色换上(第 165 课 + 166 课)。
【注意】换色要 Copy 材质(material vs materials 区别:直接改 material 会创建实例)。
【测试】选红色上衣、换头饰。
【完成】换装系统完整!
【说明】r.material 会创建材质实例(安全改色不污染共享材质)。
✅
换装三式:挂点(拿武器)、换色(改材质)、换部件(换预制体)。全掌握。
⚠
常见错误与排查
⛔
错误:
改颜色影响所有角色?
原因:
改了共享材质
解决:
用 renderer.material(创建实例)改色,避免污染共享材质。
★
动手练习
课后小任务(做出来才算真的学会)
实现武器挂点与切换
实现颜色换装
实现部件换装
✓
本节小结
换装系统完成。下一课做角色布娃娃实战。
标记为已完成
完成打卡后,主站会实时更新你的学习进度 🎯
← 上一课
3D 动画进阶(混合树与层)
下一课 →
3D 角色布娃娃实战
↑