Unity之地形的构建

news2025/1/19 14:14:49

PS:公司没活干,好无聊偷偷摸鱼学Unity,害怕自己学完之后忘记,写下这一篇博客

先来看一下效果图:有山有水有树有草地


创建一个新的Unity3D项目

 这里要用到Unity官方的免费资源包(现在好像已经下架了百度网盘 请输入提取码) 

资源包下载完成之后我们导入新建好的Unity项目:

在项目这一栏里点击鼠标右键 ——> 导入包 ——> 自定义包,然后选择你下载资源包的路径就导入进来了。(这是汉化包的教程要对应你Unity版本进行安装unity3D【全版本】设置中文_unitu3d中文-CSDN博客)

首先创建一个地形:在层级这一栏里点击鼠标右键可以创建各种实体,这里选择地形

 在创建好的地形中点击选中它然后在检查器中会显示出对地形的操作和组件

对地形的绘制主要由这5个按钮来实现: 

一、

第一个按钮是创建相邻地形,顾名思义就是在你已经创建好的地形旁边继续添加地形......目前来说一个地形这个已经够练手了

二、

第二个按钮是绘制地形:这一个操作栏下边有六个选项,我们这里先看四个。

2.1

先来选择第一个  ——  Raise or Lower Terrain(升高或降低地形) ——  就是拿画笔在地形上绘制山脉和盆地;升高就是山脉,降低就是盆地,先升高后降低就是......没变(手动狗头) (升高直接鼠标左键绘制,降低需要按住Shift+鼠标左键来绘制)

注:这里的降低必须在地形有原有高度的基础上来降低

下边还有笔刷、笔画大小、不透明度

 尽情绘制吧:

2.2

来看第二个:Paint Holes  ——  它的主要功能是在绘制好的山上进行山洞的绘制,现在的绘制只是单纯的给山戳个洞,想要变得更好看你还需要山洞的资源包模型(然鹅我现在也没有^_^)

2.3

第三个:Paint Texture我们稍等再说。先说第四个:Set Height

你这里设置了想要的高度再去绘制的时候所绘制的高度就不会超过你所设定的高度,效果如下所示:

这里还有一个测量高度的操作,在你的地形里按住 Shift+鼠标点击 会获取你当前所点击地形的高度, 然后数值就会显示在高度里边。

通过这个Set Height设定你还可以为地形创建初始厚度。在高度里输入100,点击 展平瓦片 ,这样就设定了100米厚的地形,然后你就可以挖100米深的盆地了,这个和上面的  “”  相对应

 展平瓦片  只会展平一块地形,如果你还创建了其他相邻的地形 点击 全部展平    那其他地形也会展平。


如果你想要你所绘制出来的山脉盆地表面平滑一些,那么  Smooth Height  可以帮到你

 勾选后设置好笔刷等属性值去抹平就完事了 

2.4

绘制好你想要的效果后这下我们来看 Paint Texture ,给地形装上纹理

点击编辑地形层  ——  创建层,从我们导入的资源包中选择纹理,然后给地形绘制上吧

我这里用的三个地形层的素材名称是:NewLayer 3、NewLayer 4、NewLayer 6

这里地形层可以添加好几个,添加的第一个地形层会自动给整个地形加上该地形层,其他地形层需要手动绘制;这里同样可以调节画笔大小和不透明度。

现在离效果图只差树和草了我们一起说完:主要是通过这两个按钮下边的功能实现的。

操作方法和给地形加纹理类似,首先要导入树和草的资源素材。 树的素材名:Conifer_Desktop

编辑树 ——》  添加树  ——》 选择树素材

 大量放置树  这个按钮可以设定树的数量直接放置,此外还有树的密度、树高和随机性等属性

 草的素材名是:GrassFrond02AlbedoAlpha

编辑细节 ——》  添加草纹理  ——》选择草素材

草离近了才能显示出来  ——  真.编辑细节。

绘制好树和草就能达到效果图所展示的内容了    

下一步要去学习组件和Unity脚本的编写了,拜拜┏(^0^)┛ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1348191.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大数据面试知识点】分区器Partitioner:HashPartitioner、RangePartitioner

Spark HashParitioner的弊端是什么? HashPartitioner分区的原理很简单,对于给定的key,计算其hashCode,并除于分区的个数取余,如果余数小于0,则用余数分区的个数,最后返回的值就是这个key所属的…

自动化网络故障修复管理

什么是故障管理 故障管理是网络管理的组成部分,涉及检测、隔离和解决问题。如果实施得当,网络故障管理可以使连接、应用程序和服务保持在最佳水平,提供容错能力并最大限度地减少停机时间。专门为此目的设计的平台或工具称为故障管理系统。 …

【新手向】VulnHub靶场MONEYBOX:1 | 详细解析

MONEYBOX:1 安装靶机 作为一名新手,首先要配置好环境,才能进行下一步的操作。 将下载的ova文件导入VirtualBox。 VirtualBox下载地址:https://www.oracle.com/cn/virtualization/technologies/vm/downloads/virtualbox-downloads.html 选择…

C#编程-编写和执行C#程序

编写和执行C#程序 可以使用Windows记事本应用程序来编写C#程序。在记事本应用程序中创建C#程序后,您需要编译并执行该程序以获得所需的输出。编译器将程序的源代码转换为机器代码,这样计算机就能理解程序中的指令了。 注释 除了记事本,您还可以使用任何其他文本编辑器来编写…

Altium Designer20中遇到的问题和解决办法记录

最近二战考完研了,重新拾起之前学的一些项目,最近在优化以前话的四层PCB版的时候发现了在使用AD使碰到一些问题现在记录如下: 1.Altium Designer 中的 Clearance Constraint 错误如何修改 : 我遇到的报错如下:  这…

Django 后台与便签

1. 什么是后台管理 后台管理是网页管理员利用网页的后台程序管理和更新网站上网页的内容。各网站里网页内容更新就是通过网站管理员通过后台管理更新的。 2. 创建超级用户 1. python .\manage.py createsuperuser 2. 输入账号密码等信息 Username (leave blank to use syl…

【图像拼接】源码精读:Seam-guided local alignment and stitching for large parallax images

第一次来请先看这篇文章:【图像拼接(Image Stitching)】关于【图像拼接论文源码精读】专栏的相关说明,包含专栏内文章结构说明、源码阅读顺序、培养代码能力、如何创新等(不定期更新) 【图像拼接论文源码精…

fmincon函数的决策变量可以是二维矩阵,但不建议是高维矩阵

1)二维矩阵代码 clear all clc% 定义目标函数 fun (x) sum(sum(x.^2));% 初始矩阵 x0 2 rand(2, 2);% 定义空的线性不等式约束 A []; b [];% 定义空的线性等式约束 Aeq []; beq [];% 定义变量的上下界 lb ones(2,2); ub [];% 使用 fmincon 求解 options …

YOLOv8主干改进 更换柱状神经网络RevCol

一、Reversible Column Networks论文 论文地址:2212.11696.pdf (arxiv.org) 二、Reversible Column Networks结构 Reversible Column Networks 是一种用于量子计算的新型结构。它由一系列可逆操作组成,可以在量子计算中进行高效的信息传递和处理,具有可扩展性、灵活性、…

编程式导航传参

(通过js代码实现跳转) 按照path进行跳转 第一步&#xff1a; 在app.vue中(前提是规则已经配置好) <template><div id"app">App组件<button clicklogin>跳转</button><!--路由出口-将来匹配的组件渲染地方--><router-view>&l…

LeetCode994腐烂的橘子(相关话题:矩阵dfs和bfs)

题目描述 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a; 值 0 代表空单元格&#xff1b;值 1 代表新鲜橘子&#xff1b;值 2 代表腐烂的橘子。 每分钟&#xff0c;腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单…

【Linux】Linux

Linux 文章目录 Linux1. 简介2. 目录结构3. vi/vim 的使用4. 网络配置4.1 配置网络ip地址4.2 配置主机名或ip映射4.3 远程登陆及上传下载 5. 系统管理5.1 service 服务管理&#xff08;CentOS 6 版本&#xff09;5.2 systemctl 服务管理&#xff08;CentOS 7 版本&#xff09;5…

计算机网络(6):应用层

每个应用层协议都是为了解决某一类应用问题&#xff0c;而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。 应用层的具体内容就是规定应用进程在通信时所遵循的协议。 应用层的许多协议都是基于客户服务器方式。即使是对等通信方式&#x…

【Linux学习笔记】解析Linux系统内核:架构、功能、工作原理和发展趋势

操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体&#xff0c;它们互相依赖&#xff0c;不可分割。计算机的硬件&#xff0c;含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是…

(13)Linux 进程的优先级、进程的切换以及环境变量等

前言&#xff1a;我们先讲解进程的优先级。然后讲解进程的切换&#xff0c;最后我们讲解环境变量&#xff0c;并且做一个 "让自己的可执行程序不带路径也能执行"的实践&#xff0c;讲解环境变量的到如何删除&#xff0c;最后再讲几个常见的环境变量。 一、进程优先级…

STL——vector容器

目录 1.vector基本概念 2.vector构造函数 3.vector赋值操作 4.vector容量和大小 5.vector插入和删除 6.vector数据存取 7.vector互换容器 8.vector预留空间 1.vector基本概念 功能&#xff1a;vector数据结构和数组非常相似&#xff0c;也称为单端数组。 vector与普通数…

内存泄漏检测工具

1. vs/vc(windows下)自带的检测工具 将下面的语句加到需要调试的代码中 #define _CRTDBG_MAP_ALLOC // 像一个开关,去开启一些功能,这个必须放在最上面 #include <stdlib.h> #include <crtdbg.h>// 接管new操作符 原理: 就是使用新定义的DBG_NEW去替换代码中的n…

开始使用MEVN技术栈开发02 MongoDB介绍

开始使用MEVN技术栈开发02 MongoDB介绍 MongoDB介绍 As indicated by the ‘ M ’ in MEVN, we will use MongoDB as the backend database for our app. MongoDB is a NoSQL database. Before we talk about what is a NoSQL database, let ’ s first talk about relationa…

github使用技巧(经验篇)

相关经验 指定代码范围并高亮显示 例如&#xff0c;指定nn_ops.py文件2612-L2686行的代码&#xff1a;https://github.com/tensorflow/tensorflow/blob/v2.14.0/tensorflow/python/ops/nn_ops.py#L2612-L2686 FAQ Q&#xff1a;github网页打不开&#xff1f; 【github加载不…

MySQL例行检查

MySQL例行检查 1.实例例行检查1.1线程1.2索引1.3临时表1.4连接数1.5BINLOG1.6锁1.7WAIT事件1.8MySQL状态 2.事务与锁例行检查2.1查看索引的cardinality2.2查看是否存在事务阻塞现象2.3查看事务执行时长以及执行的所有SQL2.4事务与锁 3.库表例行检查3.1查看缺失主键的表3.2冗余索…