Unity3d创建水
学习 Unity3D 时,你会发现有关地形创建的教程有很多,这里就不再赘述。但关于创建水的教程却相对较少,笔者在查阅了大量百度文章后,才成功制作出水效果,先展示一张效果图(此处可插入对应图片)。
下面详细介绍制作过程:
1. 创建平面(Plane)
在你期望创建水的位置先创建一个平面。为了避免出现视觉穿帮问题,需要先将地面下陷,然后在上面铺设平面。需要注意的是,若要将地形下陷,需在创建地形之初将其整体提升一定高度,因为地形的基础高度默认是 0,无法再进行下陷操作。笔者使用的是 Unity3D 4.2.0 版本,设置地面基础高度的位置如下图所示(此处可插入对应图片),我将其设置为 30。设置完成后,点击右边的“flatten”按钮使设置生效。但一定要在创建地形之初进行此操作,否则后期修改会导致之前制作的地形白费。
以下是创建好的平面示例图(此处可插入对应图片)。
2. 导入水的资源包
选择 “Assets” -> “Import Package” -> “Water(Pro Only)”。如果你的 Unity3D 已经破解,就可以使用高级的水效果资源包。
3. 给平面赋予水的材质
- 选择 “Assets” -> “Create” -> “Material”,创建一个新的材质。
- 在材质的 Inspector 面板的 Shader 选项中,选择 “FX” -> “Water”。此时会出现水的属性设置选项。
- 在 “Fresnel(A)” 选项中,选择一张图片,笔者选择了资源库里的 “Water Fresnel”。
- 在 “Normalmap” 选项中,同样选择一张图片,我选择的是 “Water fallback”。(此处可插入对应设置图片)
4. 应用材质到平面
将上述创建并设置好的材质拖动到刚创建好的平面上。
5. 添加水脚本
在 Project 的 Water 资源包中找到 Water 脚本,路径为 “Project” -> “Standard Assets” -> “Water(Pro Only)” -> “Sources” -> “Scripts” -> “Water”,然后将其拖动到平面上。此时,你应该就能看到水面效果,水的创建基本完成。
你可以尝试改变 “Fresnel” 和 “Normalmap” 的图片选择,以及调整 “Wave speed”(波浪速度)参数,观察不同的效果。
实际上,在 “Water(Pro Only)” 资源包中,已经为我们提供了两个现成的材质,分别是 “Daylight Water”(白天水效果材质)和 “Nighttime Water”(夜晚水效果材质),你可以直接使用这两个材质来快速实现不同时段的水效果,不妨一试。