Unity场景构造

Unity3D大都用terrain搭建场景,其中包括怎样修改地面,有层级的变化,高低不平的地面。

Poly brush

如何使用poly brush来达到做成low poly风格的terrain效果:

首先安装package:Window->package Manager如下搜索

下载完成后需要导入第二个Samples(我们是用的是URP)

安装完之后上分会出现如下:

点击即可进入Polybrush

第一个的功能:就像terrain一样它可以调整地面的高度高矮。

第二个:柔化。

第三个:将我当前的物体刷上不同的颜色,非常方便我们在做prototype的时候可以将不同的区域规划好,这样的话我们可以在不同的区域去搭建我使用的美术素材。

第四个:将我们的预制体刷到我的场景当中。

笔刷功能:

我们可以改变地形,如果要向下改变的话可以按住键盘上的control键然后再进行点按。

可以选择外圈的大小以及它的强度,同时也可以使用快捷键,比如说你可以按住Shift键来滚动就调整内角,Ctrl键去滚动调整外圈

使用时鼠标移动到不同顶点的时候圆盘发生了角度的变化,原因是因为默认选择的角度是它的normal map(顶点法线方向,通常用于加强侧面山区效果)也可以选择默认是Y轴(只希望上下调整)或X轴。

羽化功能:

可以将一些比较坚硬的定点把它柔化一些,就是磨平一点。同样可以调整外圈内圈和强度

刷颜色功能:

初始时点击发现它并没有任何效果,原因就是因为我当前选中的物体它的meterial材质并不是我们刚才导入进来的poly brush的材质,所以我们可以使用Poly brush自带的shader graph来创建材质,最方便快捷的方式就是选中它的shader graph,点击鼠标右键如下操作:

随后便可以显示出刷的颜色,如果想全部为统一颜色:选中颜色后点击flood即可

刷入物体:

初始状态下可以看到现在是空的。可以找到之前的素材包里面的prefab,拖拽进入Current Palette

若此时想刷上数,就可以点击想要刷的树,这时候树就到达了Brush Loadout。

随后点击地图就可以随机在这一篇区域快速刷上去

可以通过改变Brush Loadout下物体横线的位置来选择它的出现概率。

如果想删除刚才添加某一物体,只需要按住Control键去点击那个物体即可

这样刷有一个好处就是“Hit Surface is Parent”。这样子资源就不会太乱,我们可以发现其物品全归于了Ground下,所有物品成为了它的子集。

便于我们管理场景,使其看起来不那么乱。

同时你也可以调整物品的密度:

要注意使用Poly brush的时候选中任意操作窗口都会使得坐标轴缺失,若要调整物品需要点击窗口还原后再选中场景物体。

如何将场景变大:

方法1:ground 本身它的 Size 来调整设置(Scale)

但是无论如何调整,地图虽然变大,但是它本身的顶点数并没有增多,也就是说我想操作地形的时候他只有这一个点是有效果的,他不能非常细化的达到低模精度的这种效果,所以这个时候我们就要来创建属于于自己的平台,这个平台并不是指我们平时在hierarchy窗口创建的3D物体的这个plane。(方法二)

这个Plane同样就算你调整非常的大然后你用Poly brush去刷它的时候你会发现它的顶点数目仍然非常的少。

所以我们需要使用一个非常强大的插件:Probuilder.

Probuilder:

安装:Window->package manner,搜索Probuilder,安装即可。

记得添加Samper

否则在我们刷颜色或者做一些调整的时候不会有针对性功能的变化,你创建的所有的pro builder的物体都将是灰色的 而不是pro builder原有的格子型的材质球。

添加完后打开:

将会是上图文字形式的样子,你也可以点击右侧的三个点选择使用icon的方式显示

按住Shift键将鼠标停留在图片上将会显示每一个图标的具体功能,如果有齿轮这样的图标的话,我们点击齿轮或者按住option和alt键来点击的话会有进一步的设置。

如下:

创建Plane即可

随后我们可以用Polybrush进行调整

我们发现,调整时格子里面的顶点是以方块的形式存在的,每一个正方形的方块他并不符合我们的Low poly风格(以三角为单位)所以我们需要继续更改设置,将整个物体改为切割出来三角形,我们先取消Poly brush上面的按钮,回到hierachy窗口中选择好我们当前的平板,然后再pro builder的窗口当中我们可以看到一个折纸的图标,点击即可,随后我们再去刷的时候细节就多起来了

现在场景材质默认的都是白色,如果我想要让它有其他的材质,可以选择直接在我的project窗口当中去创建材质。同样在Asset中创建一个materials文件夹来管理,在里面我们可以创建meterials如下:

起名ground,然后将此材质球拖拽到我的plane上,接下来你就可以在Inspector里面任意操作改变。

然后再配合Polybrush刷上物体即可完成场景绘制构造。

Unity重置场景的过程包括以下主要阶段: 1. 备份当前场景:仅在场景被修改后发生,这样当退出运行模式时,Unity可以将场景恢复为运行模式开始前的状态。 2. 停止C#域:对所有ScriptableObject和MonoBehaviour调用OnDisable(),并等待所有异步操作完成。 3. 序列化所有MonoBehaviour和ScriptableObject的状态:调用OnBeforeSerialize(),并序列化所有公共字段和私有字段值。 4. 断开托管的包装器与原生Unity对象的连接。 5. 重新加载Unity子域:卸载Mono域,销毁Unity子域,包括调用GC和终结器、终止线程以及删除所有JIT信息,并创建新的Unity子域。 6. 加载程序集:加载系统程序集、加载Unity程序集和加载用户程序集。 7. 初始化同步上下文。 8. 恢复脚本状态:重新创建所有Unity对象的可编程部分,包括调用构造函数并为统计信息分配默认值,反序列化所有Unity对象的状态,调用OnValidate()以及对于使用[ExecuteInEditMode]属性的脚本,调用OnEnable()、OnDisable()和OnDestroy()。 9. 调用包含InitializeOnLoad和InitializeOnLoadMethod的方法。 10. 调用AssemblyReloadEvent afterAssemblyReload。 换句话说,重置场景时,Unity会备份当前场景、重置脚本状态、重新加载Unity子域和程序集、恢复脚本状态,并执行其他必要的初始化操作。这样可以确保场景在重置后恢复到最初的状态。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Unity架构之详解域重新加载和场景重新加载](https://blog.csdn.net/a_codecat/article/details/127869484)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值