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.rhkb.cn/news/450511.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

harmonyOS next之实现时间打卡定时器

需求:实现一个时间打卡签到按钮。 实现方法:每隔一秒钟获取一下当前时间。 实现代码如下: Column(){Text(this.curTime).fontColor(#FFFFFF).fontWeight(600).fontSize(32vp)Text(上班打卡).fontColor(#FFFFFF) } .width(170vp) .height(170…

【 香格里拉酒店-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …

[0633].第3-3节:@SentinueResource注解

我的后端学习大纲 SpringCloud学习大纲 是什么: SentinueResource是一个流量防卫防护组件注解 用于指定防护资源,,对配置的资源进行流量控制、熔断降级等功能 SentinueResource注解说明: Target({ElementType.METHOD, ElementTy…

选择合适的SSL证书

随着我们在线业务的增长,确保网站安全变得越来越重要。对于许多人来说,保护网站安全的想法似乎令人望而生畏,尤其是在有各种SSL证书可用的情况下。您可能想知道哪一个最适合您的业务需求或如何浏览这些选项。 除了SSL证书之外,使…

SQL Injection | SQL 注入 —— 时间盲注

关注这个漏洞的其他相关笔记:SQL 注入漏洞 - 学习手册-CSDN博客 0x01:时间盲注 —— 理论篇 时间盲注(Time-Based Blind SQL Injection)是一种常见的 SQL 注入技术,适用于那些页面不会返回错误信息,只会回…

appium启动hbuild打包的apk异常解决

目录 一、错误信息 二、问题解决 2.1 通过以下命令获取安装包名称: 2.2 这个launcher状态下的安装包名称和active,替换原先的安装包名称 一、错误信息 通过adb shell dumpsys activity | findstr "mResume" 命令获取的安装包信息&#xff…

第十四届单片机嵌入式蓝桥杯

一、CubeMx配置 (1)LED配置 (1)LED灯里面用到了SN74HC573ADWR锁存器,这个锁存器有一个LE引脚,这个是我们芯片的锁存引脚(使能引脚),由PD2这个端口来控制的 (2&#xff…

【前端】如何制作自己的网站(7)

以下内容接上文。 结合图片的超链接 将img元素作为内容,放在a元素中。即可为图片添加一个超链接。 例如右边的代码,点击头像就会打开“aboutme.html“。 点击右边的图片试试~ 两个非文本元素——图片与超链接。 从现在开始&#xff0…

API项目3:API签名认证

问题引入 我们为开发者提供了接口,却对调用者一无所知 假设我们的服务器只能允许 100 个人同时调用接口。如果有攻击者疯狂地请求这个接口,那是很危险的。一方面这可能会损害安全性,另一方面耗尽服务器性能,影响正常用户的使用。…

Golang | Leetcode Golang题解之第492题构造矩形

题目: 题解: func constructRectangle(area int) []int {w : int(math.Sqrt(float64(area)))for area%w > 0 {w--}return []int{area / w, w} }

DeBiFormer:带有可变形代理双层路由注意力的视觉Transformer

https://arxiv.org/pdf/2410.08582v1 摘要 带有各种注意力模块的视觉Transformer在视觉任务上已表现出卓越的性能。虽然使用稀疏自适应注意力(如在DAT中)在图像分类任务中取得了显著成果,但在对语义分割任务进行微调时,由可变形…

【论文精读】RELIEF: Reinforcement Learning Empowered Graph Feature Prompt Tuning

RELIEF: Reinforcement Learning Empowered Graph Feature Prompt Tuning 前言AbstractMotivationSolutionRELIEFIncorporating Feature Prompts as MDPAction SpaceState TransitionReward Function Policy Network ArchitectureDiscrete ActorContinuous ActorCritic Overall…

Firefox火狐浏览器打开B站视频时默认静音

文章目录 环境问题解决办法 环境 Windows 11家庭版Firefox浏览器 131.0.2 (64 位) 问题 用Firefox浏览器打开B站的视频时,默认是静音播放的: 而其它浏览器,比如Chrome和Edge,默认是带声音播放的。 虽然不是什么大问题&#xf…

二叉树与堆讲解

目录 1.树的概念及结构 1.树的概念 2.树的相关概念 3.树的表示 2.二叉树 1.概念 2.特殊的二叉树 1.满二叉树 2.完全二叉树 3.二叉树的性质 4.二叉树的存储结构 1.顺序结构 2.链式存储 3.堆 1.堆的概念及结构 2.堆的实现 1.堆的创建 2.堆的初始化(H…

Javascript算法——双指针法移除元素、数组去重、比较含退格字符、有序数组平方

数组移除元素(保证数组仍连续) 暴力求解法(两层for循环),length单词拼写错误❌二次嵌套for的length设置 /*** param {number[]} nums* param {number} val* return {number}*/ var removeElement function(nums, val) {let leng…

三、账号密码存储

使用Playfers存储 Unity本地持久化类Playerprefs使用详解 - PlaneZhong - 博客园 (cnblogs.com) 一、登陆界面切换 1、登陆界面的脚本(机制类脚本) 在这个UI上挂载一个脚本LoginWnd 先声明一下这个脚本,拖拽 2、在登录模块中调用 这里的l…

手写Spring IOC-简易版

目录 项目结构entitydaoIUserDaoUserDaoImpl serviceIUserServiceUserServiceImpl ApplicationContext 配置文件初始化 IOC 容器RunApplication 注解初始化 IOC 容器BeanAutowired Reference 项目结构 entity User Data NoArgsConstructor AllArgsConstructor Accessors(chai…

神经网络中使用的激活函数有什么用?

🎁👉点击进入文心快码 Baidu Comate 官网,体验智能编码之旅,还有超多福利!🎁 🔍【大厂面试真题】系列,带你攻克大厂面试真题,秒变offer收割机! ❓今日问题&am…

最新仿蓝奏网盘系统源码 附教程

自带的蓝奏云解析,是之前的代码,截至发帖时间,亲测依旧有效,可以扒拉下来做蓝奏云解析接口。 使用方法:可以将文件上传至蓝奏云,然后通过此套系统,二次解析下载,不会暴露你的真实蓝…

PCL 点云配准-4PCS算法(粗配准)

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 加载点云数据 2.1.2 执行4PCS粗配准 2.1.3 可视化源点云、目标点云和配准结果 2.2完整代码 三、实现效果 3.1原始点云 3.2配准后点云 PCL点云算法汇总及实战案例汇总的目录地址链接…