当前位置: 首页 > article >正文

Unity 山水树木

本章节内容 1. Unity对3D游戏物体的简单操作; 2. 构建山水树木的场景

1. Unity 简易操作

1.1 新建3D游戏场景

1. 打开Unity Hub,点击 New Project (新建项目)按键,选择第二项 3D(Built-In Render Pipeline),再在右侧窗口中输入项目名称(切记,名称不能有中文!),选择存储路径(切记,路径中不能有中文!),最后点击右下角 Create project 按键,等待Unity Editor启动新建一个空项目。

2. 在Unity Editor界面,在Hirarchy窗口中的空白处点击鼠标右键,在弹出的菜单中选择3D Object>Cube,在场景中添加一个Cube游戏物体,如果看不清该新建Cube,可以在Hirarchy窗口中双击该游戏物体(Cube)。

3. 使用工具栏对Cube游戏物体进行简易操作

  • 移动窗口:点击左侧第1个工具,可以移动Scene窗口

  • 移动游戏物体:点击左侧第2个工具,Cube上显示了三维坐标,可以使用鼠标移动该Cube

  • 转动游戏物体:点击左侧第3个工具,Cube上显示三个维度上的旋转圈,可以选择一个圈,在该维度上旋转游戏物体

  • 放缩物体大小:点击左侧第4个工具,Cube上显示三个维度上的伸缩杆,可以选择一个杆,也可以选择两个杆交接的二位平面,就可以同时在两个维度上放缩物体了。

如下是操作总结:

快捷键

Q

W

E

R

T

Y

英文

Hand Tool

Move Tool

Rotate Tool

Scale Tool

Rect Tool

Move, Rotate or Scale selected objects

中文

手形工具

移动工具

旋转工具

缩放工具

矩形工具

移动、旋转或缩放选定对象

功能

在整个场景中移动漫游

按坐标轴移动选定对象

按三个维度旋转对象

在三个维度上缩放对象

以矩形的方式调节对象的尺寸

综合前面所有对选定对象的调节工具

除了使用 Q 打开手形工具随后用鼠标左键漫游场景外,使用鼠标中键也可以在任意工具下漫游场景(按住鼠标中键然后移动鼠标)。

4. 保存场景:对场景进行更改后,需要保存场景操作,点击 File>Save 保存该场景信息,为了保险起见,点击File>Save Project,保存整个项目,这样下次打开该项目可以看到这次保存的场景。

1.2 场景查看的快捷键

视图漫游

按住鼠标右键移动可以以当前镜头处为轴心旋转视角,按住鼠标右键的同时按下 W A S D Q E 也可以前后左右下上移动镜头

游戏物体查看

按住 Alt 键的同时按住鼠标左键移动镜头,以目标物体为轴心来移动和旋转。

按住 Alt 键的同时按住鼠标右键上下左右移动也可以移远和移近物体。

视图调节

F(置于中心):当在层级(Hierarchy)窗口或场景(Scene)窗口选中某个对象后,可按 F 将对象置于场景中心,并放大/缩小到合适的尺寸。

窗口调整

Shift + 空格(最大化/还原):当你的焦点在 Unity 编辑器的任何子窗口中的时候,按下 Shift + Space 可以将此子窗口最大化或者还原。

进入退出播放模式

Ctrl + P(进入退出播放模式):相当于按下界面中的“播放”按钮。

2. 构建山水树木场景

下面的内容将构建一个山地形,在山上铺设草地,点缀树木,并加入1条河流。该项目将使用附件中的资源包。

1. 按上述1.1新建一个3D游戏场景;

2.1 构建山形地势

2. 在unity editor界面的Hirarchy窗口中,点击鼠标右键,在弹出菜单中选择3D Object>Terrain, 在场景中新建一个山游戏物体(注意现在没有山脉起伏形状,只是一个平面。

3. 调整山游戏物体在场景的位置,旋转查看角度, 以及调整main camera角度和位置,使得场景窗口中看山的形状和游戏窗口中所看的山的形状一致,如下图所示

4.开始提高山在水平的高度,在Hirarchy窗口中选择Terrain,然后在右边Inspector窗口中Terrain组件中点击第 2 个按键,在其下方的窗口中点击,在弹出的菜单中选择Set Height

5. 在新显示的窗口菜单中设置Height 为10,再点击Flatten Tile,这样使得山的厚度(高度)为10个单位

6. 下面设置山脉的起伏,点击Set Height窗口,在下拉菜单中选择第4个 Raise or Lower Terrain

7. 在其下方设置笔刷大小和不透明度,如下图所示,然后将鼠标选择左方场景中的山,看到鼠标会显示为一个笔刷样式,按住鼠标左键,然后在山游戏物体上来回移动鼠标,这样可以制造不同的山脉起伏。(可以先在四周移动鼠标抬高四周的山脉,然后再在中间来回移动鼠标抬高中间的山脉)

8. 设置河流通道。在键盘上按住 Shift 按键,再按住鼠标左键,在山脉中间从左到右来回移动鼠标,画出一个河道的形状,如下图所示

9. 平滑山脉。再次点击右边Inspector窗口中Terrain组件里的下拉窗口,选择 Smooth Height

10. 然后用鼠标在左侧场景(Scene)窗口中,在山脉上来回移动鼠标,使得山脉表面比较平滑。重点查看一些比较突兀的山脉,显得不要太凸凹就好。

2.2 铺设草地

11. 开始在山上面铺设草地,点击右侧Inspector窗口中,在Terrain组件下方的下拉菜单中选择 Paint Texture, 然后点击下方的 Edit Terrain Layers... 按键

12. 在弹出的菜单中选择 Create Layers,弹出选择材质(Select Texture2D)窗口

          

13. 可以拉大一下这个窗口,在其中选择GrassHillAlbedo 这个草皮图案,双击该图案,该草皮层就建好了,山脉变成了绿色(没有看出草的纹理,这是因为视角太高太远了)

14. 重复上述12,13步骤,新建一个沙地的图层,在选择材质窗口选择沙地的图案

15. 选择这个新建的沙地层,然后移动鼠标在左侧场景(Scene)窗口中河道的地方,按住鼠标左键,沿着河道来回移动鼠标,给河道铺设沙地河床,也可以在山脉突出的地方点击鼠标左键,制造一点山顶秃的视觉效果,如下图所示,

16. 在场景窗口中,按住鼠标右键,在按键盘的A S W D Q E按键,将镜头靠近山谷,贴近地面,查看草地和沙地的效果,可以看到是绿地和沙地效果,但绿地上还没有草,如下图所示。

17. 选中山游戏物体,在右侧Inspector窗口的Terrain组件下选择第4个按键(绘制细节),然后点击下方的 Edit Details...按键,在弹出的菜单中选择 Add Grass Texture 菜单项

18. 在Add Grass Texture 窗口中,选择第一行 Detail Texgture 最右侧的点圈按键,弹出上述13步骤中的Select Texture2D窗口,选择一个草的图案, 

19. 选择草材质图案就会返回到原先的Add Grass Texture 的第一行右侧的编辑框中,然后点击该窗口最下方右侧的 Add 按键,加入该材质。

20. 然后用鼠标在左侧场景窗口中,按住鼠标左键,在山脉的不同处来回移动鼠标,将草加入到山脉表面,如下图所示

2.3 点缀树木

21. 在Hirarchy窗口点击Terrain,然后再最右侧Inspector窗口的Terrain组件中,点击第3个按键(Paint Tree),再点击下方Edit Trees...按键,如下图所示,在弹出菜单中选择 Add Tree菜单,打开Add Tree窗口。

22. 如下图所示,目前没有书的预制体,点击Tree Prefab最右侧的点圈按键,弹出Select Game Object窗口,在其中选择一个树的预制体,双击后该预制体的名称将出现在下图Tree Prefab右侧的编辑框,确定后点击下方 Add 按键,将该树预制体加入到Terrain组件

23. 在界面中可以调整树的密度和树的高度,确定这些树的参数后,将鼠标移到Scene(场景)窗口中的山脉上,按住鼠标左键后来回移动鼠标,就可以在山上添加树木。

可以在场景窗口中将视角移到天空,以俯视角度的更好安排树木覆盖区域。

2.4 增加水流

24. 该项目添加的资源包Standard Assets中提供了三种水的Prefab(预制体),可以在Project窗口Standard Assets > Environment>Water中查看,如下图所示,选择基本的水预制体Water(Basic)

25. 将一个水预制体拖拽到河道中,然后将该预制体放大(在左侧工具栏中选择放大按键,然后点击预制体中心的放开,按住鼠标左键移动,就可以放大水了,如果不显著,多放大几次),使得水的范围能够覆盖整个河道,如果放大后还没看到水,可能水的位置在河道下方,需要将水向上移到河道上方,效果如下图所示

26. 点击运行,在游戏窗口查看山水树木的效果。


http://www.kler.cn/news/360446.html

相关文章:

  • 六西格玛绿带培训:哪些行业亟需这股“质量旋风”?
  • python长时间序列遥感数据植被物候提取与分析
  • 运行第一个go程序
  • Vim使用与进阶
  • “人工智能+中职”:VR虚拟仿真实训室的发展前景
  • uniapp展示本地pdf + 自定义标题
  • LeetCode 11.盛最多水的容器
  • 10月18日笔记(基于系统服务的权限提升)
  • 数据库相关操作
  • 国际市场波动中机遇与挑战,LDC(利鼎)平台引领智能化交易体验的新纪元
  • 基于深度学习的智能传感与监控
  • 大数据治理:数据时代的挑战与应对
  • 【图像去噪】论文精读:Simple Baselines for Image Restoration(NAFNet)
  • 微服务网关Zuul
  • Planetoid(helpers.dataset_classes文件中的classic_datasets.py)
  • 阿里字节技术管理岗位面试要求
  • RHCE笔记
  • 【Linux线程】Linux多线程实践:深入生产者消费者模型
  • 自动化生成工作流?英伟达提出ComfyGen:通过LLM来匹配给定的文本提示与合适的工作流程
  • 计算机网络中的HTTP协议