U
Unity
星辰学院
首页
课程表
章节导览
第 1 课
返回主站
首页
/
第 14 章 · 3D 游戏进阶
/
第 244 课
LESSON 244 · 3D 游戏进阶
3D 水体与透明材质
水体完成。下一课做 3D 游戏优化。
⏱ 约 14 分钟
📊 难度:
入门
🗂 第 14 章 · 3D 游戏进阶
📍 第 244 / 300 课
课程进度
244 / 300
🎯
本节学习目标
实现水面材质
实现漂浮物体
实现交互
🚀
课程导读
水“让 3D 场景灵动。本课实现水面、漂浮、行走效果。
◆
水面材质
会动的”水“。
【水面】Plane 或 Quad 放大做水面(放在地形上方)。
【URP 水面】URP 自带 Water 相关 Shader(或商店”水体“资源)。
【基础方案】用 Standard 的 Transparent 模式 + 蓝色半透明 + 法线贴图(波浪感,第 189-190 课)。
【动起来】把法线贴图做 UV 偏移动画(第 128/190 课):
材质球 Main Texture Offset 随时间移动模拟流动。
【高级】URP 有 WaterSystem(Unity 6 内置水体工具,进阶)。
【漂浮物】物体在水面浮动:
FloatObject:
float waterLevel = 0f;
void Update() {
float targetY = waterLevel + Mathf.Sin(Time.time * 2f + offset) * 0.3f;
transform.position = Vector3.Lerp(transform.position, new Vector3(transform.position.x, targetY, transform.position.z), Time.deltaTime);
}
【完成】水面+漂浮物。
【注意】透明水体排序:Render Queue 调整(透明物体显示顺序)。
💡
水体 = 透明材质 + 蓝色 + 法线贴图偏移(动感)+ 漂浮脚本。四步有水。
◆
水下效果与交互
下水与涟漪。
【水下】相机在水面下时:加全屏蓝色滤镜/低音效(第 196 课屏幕特效)。
【判断】相机 y < waterLevel 时启用水下效果。
【走进水里】触发器检测玩家进/出水,改移动速度/音效。
【涟漪】粒子或贴图做扩散圆环:
ObjectPool.Instance.GetRipple(transform.position);(圆环粒子)。
【触水涟漪】物体落水时生成涟漪特效+音效。
【潜水】玩家潜水控制(进阶:浮力、方向)。
【测试】角色走进水里画面变蓝、落物起涟漪。
【完成】水体”能玩“。
【应用】湖、河、泳池关卡。
【注意】水下特效用 Volume 或全屏 Image 实现。
✅
水下反馈 = 水面位置判断 + 蓝色滤镜 + 音效变化。涟漪=落水触发特效。
⚠
常见错误与排查
⛔
错误:
水面看不到?
原因:
透明没设或排序错
解决:
材质 Rendering Mode 用 Transparent;Render Queue 调透明层。
★
动手练习
课后小任务(做出来才算真的学会)
做会流动的水面
做漂浮物
做水下滤镜与落水涟漪
✓
本节小结
水体完成。下一课做 3D 游戏优化。
标记为已完成
完成打卡后,主站会实时更新你的学习进度 🎯
← 上一课
3D 物理破碎与可破坏
下一课 →
3D 游戏优化(遮挡剔除与 LOD)
↑