Unity游戏开发学习记录

Unity练习1- 古迹探险开发(上)

2023-12-19  本文已影响0人  我阿郑

对于开发者,地形系统、光照系统、粒子系统不是核心需要掌握和熟练的东西。特别对于初学者,对于这几个系统知道核心使用即可,不需要花过多时间在这几个系统研究上。

✅ 地形系统

➡️ 创建地形:大纲窗口右键 | 3D Object |Terrain

image.png

【地形系统】一般是用来搭建一些荒野地形(有山有水树木等)。 城市地形一般是通过建模软件来创建的。

image.png

这个地形实际是很大的,有1000米。在【地形设置】的下面可以修改地形的宽度和高度:

image.png
image.png

可以给它改成:宽高100m,Terrain Height也设置成100, 放大一些查看:

Terrain Height:代表地形的最大高度。可理解为海拔,现在是处于海平面上,海拔为0.

image.png

➡️ 第一个图标:Create Neighbor Terrain

image.png

点击它周围的方块,就可以快速扩大地形:

image.png

➡️ 第二个图标: Paint Terrain

image.png

第一栏下拉框有多个选项:

image.png image.png

第二部分是笔刷的设置Brushes:

image.png

➡️ 第三个图标: Paint Tree 绘制树木,后面细说

image.png

➡️ 第四个图标: Paint Details 比如绘制花草,后面细说

image.png

➡️ 最后一个图标:Terrain Settings 上面说的地形设置

✅ 地形系统 - 绘制贴图

image.png

选择Paint Texture ,然后在 Terrain Layers这里需要添加一些绘制贴图所需要的图层。通过多层材质来绘制地形的。

点击 Edit Terrain Layers | Create Layer,选择一个【地形专用】Texture,( 提前导入的.unitypackage资源包里的)

image.png

比如,选择一个草地的Texture,双击就可以应用在地形上。

image.png

这个NewLayer会保存在Assets里面。这个NewLayer是可以重复使用的,比如游戏里有多个地形,都可以使用这个NewLayer。

image.png

然后我们再添加一个层,泥泞的Texture:

image.png

添加完第二个层之后,地形上并没有变化。因为它只会第一个层当作默认层刷满整个地形。第二个层就需要自己【手动去刷】到地形上:

image.png

当我们把Texture贴图刷上去之后,可以通过 Tiling Settings 下的Size去【修改贴图平铺的大小】:

image.png

➡️ 法线贴图

有些Texture贴图是有设计法线贴图的,有些没有。

image.png

像这种紫色的一般是法线贴图:

image.png

我们的这个【泥泞的Texture】是有法线贴图的:

image.png

通过【一张Texture】 + 【一张法线贴图】达到更高的3D地形效果。本来我们可以把Texture做的精细度更高一些,但精细度越高的Texture越耗性能。所以采用Texture+法线贴图的方式以求达到同样的视觉效果。

Texture做成平面图,再通过法线贴图记录地形上点的法线是多少,通过法线去计算这个位置颜色的深浅,通过这样达到更好的3D效果。

一张平面图上,它是通过不同位置颜色的深浅,制作成这种3D 泥泞的感觉。

image.png

加上法线贴图后,更有泥泞小路的感觉。

✅ 树和草的绘制

➡️ 绘制树

image.png

Edit TressAdd Tress | 选择树的 Prefab | 点Add 按钮

image.png

然后就可以在地形上绘制树了。

image.png

可以添加一些不同的树绘制:

image.png

➡️ 绘制花草

image.png

点击 Edit Details 按钮 :

image.png

有个 【 Add Grass Texture】是用来添加草的材质的。选择草的贴图 | 点击 Add

image.png

因为草在资源设计时,设计成就是【贴图图片】,并不是模型。而树设计的是模型。

image.png

TGA(Targa)格式是计算机上应用最广泛的【图像格式】。在兼顾了BMP的图象质量的同时又兼顾了JPEG的体积优势。并且还有自身的特点: 通道效果、方向性。在CG领域常作为影视动画的序列输出格式,因为兼具体积小和效果清晰的特点。
图像扩展名为 .tga,该格式【支持压缩】,使用不失真的压缩算法, 可以带通道图,另外还支持行程编码压缩。

image.png

✅ 关于刚体组件

创建小球,添加刚体组件。

如果小球在场景中没有展示出来,可以拖动改变下小球的y轴位置,可能是跑到了地形的下面,也可以先reset一下,再拖进地形中也行:

image.png

选择Main Camera 右键 【align with view】方便观察。

image.png image.png

Constraints 下的 Freeze Position 和 Freeze Rotation 用来冻结轴向的。比如:

✅ 碰撞器和触发器

image.png

✅ print 日志打印和日志类型

Unity 脚本。

➡️ Debug类是Unity提供的一个内置类

image.png

控制台打印结果:


image.png

➡️ Unity 中的生命周期函数

通过 Unity Manual | Scripting | Scripting concepts | Order of execution for event functions 查看详细说明

➡️ 碰撞检测函数

image.png

➡️ 触发检测函数

image.png

✅ Unity中四种灯光

➡️ 四种灯光类型:方向光(Directional)、点光源、聚光灯(Spot)、区域光

image.png

➡️ 灯光 三种模式:实时(Realtime)、混合(Mixed)、烘培(Baked

image.png

游戏中如果想模拟一个很好的效果的话,对于【光的运用】是非常重要的。光照的计算是比较耗费性能的, 因为光照要计算它被什么东西遮挡了, 它是背对着光,还是斜对着光,对于斜度计算,该位置点光照应该亮一点还是暗一点 。。。比较暗一点的地方可能还会受到【漫反射】的地方,

➡️ 旋转

可以通过【旋转方向光】控制黑夜、黄昏、白天....


image.png

再比如,点光源:

image.png
上一篇下一篇

猜你喜欢

热点阅读