如何在Unity中创造真实的水

你将要创造什么

Unity是由Unity Technologies开发的多平台游戏引擎,用于为控制台,移动设备,计算机甚至网站等多种设备创建视频游戏和应用程序。Unity的核心优势在于其稳健性,可移植性和社区性; Unity针对几个众所周知的API,如Direct3D,OpenGL,Op​​enGL ES和最近的Vulkan。

由于上述特性,Unity在AAA软件开发公司和有抱负的游戏程序员中越来越受欢迎。

Unity支持多种技术和组件。其中一个关键组件是水系统。Unity的水系统允许您在应用程序或游戏中添加不同类型的水,即Water Basic,Water Pro和Water4。默认情况下,Unity包含几个水预制件(包括必要的着色器,脚本和艺术资产)。

本教程将重点介绍Unity中水的工作原理,以及如何使用它来创建广阔而丰富的地形环境。

先决条件
首先,确保您使用的是 最新版本的Unity ; 否则,你可能会发现教程后面和使用物理关节的细微差别。

要开始本教程,您有两个可供选择的路径:

使用可用的启动项目立即启动它。

完成以前的Unity教程,称为Unity Terrain工具。

无论哪种方式,我们都会为您提供帮助,但是花时间从前一个开始将为您提供有关Unity及其工具的更多见解。

水基础
我假设你要么使用当前的Starting Project开始,要么已经完成了之前的 Unity Terrain工具 教程。如果不是这样,您可以启动一个新项目,但必须导入环境资产包并创建自己的地形。如果您使用的是新项目,请转到主菜单“ 资产”>“导入包”,然后选择“ 环境”。

从现在开始,本教程将重点介绍当前的Starting Project。通过分析地形,您可以看到,在中心,地面更深一些。该区域专门为您创建了一个湖泊。一种方法是使用Water Basic预制件。

在“ 项目”选项卡中,打开“ 资源”文件夹,然后打开“ 环境”。在这里你会发现两个水文件夹:水和水(基本)。最初,您将使用Water(Basic)。 打开它,然后打开Prefabs文件夹。有两种预制件可供选择:WaterBasicDaytime和WaterBasicNightime。

在继续之前,这里是对预制件的快速解释。预制件充当游戏对象的模板。它允许您在场景中创建新的对象实例,并且对预制资产所做的任何编辑都会立即反映在从其生成的所有实例中。 

但是,您也可以单独覆盖每个实例的组件和设置。如果您需要在场景或多个场景中拥有多个相同类型的对象,这将非常有用。通过使用预制件,您无需从头开始创建每个对象,如果要对其进行调整,它将自动更新所有实例。

正如您可能已经猜到的那样,如果您在白天有场景,则应使用WaterBasicDaytime,并在夜间场景中使用WaterBasicNightime。它们都以完全相同的方式工作,但第二个设置为更暗。

在这个项目中你有一个白天场景,所以你将使用WaterBasicDaytime预制。使用鼠标选择预制件,然后将其拖动到场景中(或多或少地插入地面的孔中,类似于下图)。这会将WaterBasicDaytime添加到场景中。

接下来,选择水并调整其位置和比例。

当您根据需要定位和配置水时,让我们快速了解您可以使用它做什么。如果选择它并转到“ 检查器”选项卡,您将看到几个组件:刚刚使用的变换组件,水基本平面(网格过滤器),设置水的材质的网格渲染器,水基本脚本和着色器。

在网格渲染器中,您可以更改与阴影生成相关的一些选项,如“ 投射阴影”或“ 接收阴影”。您还可以修改与反射相关的多个属性。将“ 投射阴影” 和“ 接收阴影”设置 为“ 开”。接下来,对于 Reflection Probes,我们将其设置为Blend Probes和Skybox。

WaterBasicDaytime Shader允许您设置水的一些参数,如Wave scale和Wave speed。您可以使用这些值来查看某些图形更改,但现在保留默认值。

现在,为了查看最终结果,请将相机放在合适的位置。为此,请移至“ 场景”视图,并在获得所需视图后,选择“ 主摄像机”游戏对象。现在转到菜单GameObject,然后选择Align With View。这会将相机放在您想要的位置。按播放。

从这里,您可以返回并更改预制属性以查看属性之间的差异。使用Cast Shadows,Wave scale和Wave speed来感知修改。

Water Pro
下一步是学习如何使用Water Pro创建和配置湖泊。在继续之前,从场景中删除WaterBasicDaytime游戏对象。

接下来,在“ 项目”选项卡中,打开“ 标准资源”文件夹并再次打开“ 环境”。这一次,打开Water文件夹。你有两个文件夹:水和水4。要使用Water Pro,您必须打开Water文件夹。接下来,打开Prefabs文件夹。

就像Water Basic一样,文件夹中有两个预制件:WaterProDaytime 和WaterProNightime。它们都以完全相同的方式工作,并且前面提到的WaterProDaytime设置为白天场景,而WaterProNightime设置为较暗的环境。

由于您有白天场景,因此您应该选择WaterProDaytime。选择预制件并将其拖动到场景中。再次,选择WaterProDaytime游戏对象并调整其位置和比例。

一旦湖面尺寸合适,您就会立即看到水的图形质量与Water Basic相比有所不同。

当您有水时,请快速查看您可以用它做什么。如果选择它然后查看“ 检查器”选项卡,您将看到几个组件:变换组件,水平面网格,网格渲染器,水(脚本)和着色器。

 

该网格渲染 性能类似于以前的一个。将“ 投射阴影” 和“ 接收阴影”都设置 为“ 开”。接下来,将Reflection Probes 更改为Blend Probes和Skybox。

水脚本 提供了可以修改的其他属性。这些属性不适用于以前的水类型。

您可以将水模式设置为简单,这将使水像基本水一样工作,反射,这将使水具有反射但没有折射,或折射,允许反射和折射。您可以禁用像素灯,这将降低反射/折射中的照明质量,以提高性能。 

您可以设置纹理大小,它指的是生成的水纹理的分辨率。“ 剪裁平面偏移”值是反射或折射图像出现的水下方距离。您可以设置受影响的反射图层以及折射图层。这些是图层蒙版,用于控制哪些场景对象在水中可见。默认情况下,选择所有图层。

在着色器组件中,您可以更改波形比例,并更改反射和折射扭曲的值。这些将根据它们对反射或折射物体的影响来确定涟漪的表观高度。

更多unity2018的功能介绍请到paws3d爪爪学院查找。

posted @ 2019-05-09 01:08  杰克666  阅读(2484)  评论(0编辑  收藏  举报