Unity游戏基础-5(一些细节)

本教程开始分享教学内容:Unity游戏基础,部分内容会包括Blender建模基础,Shader基础,动画基础等等,教程面向:建模、技术美术、游戏前端、游戏后端基础,适合美术与设计(数媒、环设、动画、产设、视传、绘画)专业、计算机(计算机科学与技术、软件工程、数媒)的同学学习。

这是第一章的结束,让我们加一些细节,其实在教程刚设计开始我就觉得有些难以上手,因为新手小白甚至不懂编程的小白来说前3节都是难懂的,所以我们今天来填一下我没有讲过的知识点

一、Unity的跨平台

这一内容会在后面的章节里面讲到,但是本节先提一个基础

Unity是一个非常强大的三维游戏引擎,可以稳定的跑在各大平台上面(Android、Windows、Mac OS、Linux、IOS、web GL)可以说几乎就是一套代码跑遍全平台(个人版还不支持 新Harmony OS,需要企业定制版),为了维护同一个产品,不同的平台,在历史上我们是有过教训的,就是QQ,QQ在之前是没有使用跨平台框架的,手机端(安卓/苹果),电脑(Win、Linux、Mac)用到的都是不同的代码(就上面而言就有5种),维护起来非常难受,而现在的QQ最新版采用了跨平台的框架(全电脑端)

有网友表示,如今 QQ 的 Windows 版本就是 2009 年重构基础上"缝缝补补"建立起来的。

因此,有了跨平台,对于技术人员来说,要跨平台干的活也就只有在UI层面适配不同平台的活了,比如手机端的摇杆、技能、地图、跑跳、攻击等,而电脑端只需要隐藏这些只出现在移动端的控件。

二、材质和纹理

没有接触过Unity或者Blender等建模软件的是不了解这些东西的,有必要讲一下

在日常生活中,任意物品都有材质,比如玻璃、金属、纸张等等,这些材质是决定最终观众看到的东西,比如玻璃的标准透射率是1.45,表面如果光滑那么就是纯正的玻璃材质,如果粗糙度为1,那么就是毛玻璃效果。

在blender建模中,完成了白模之后就要给物体上材质,如果觉得材质合理了(材质效果堪比贴图),那就需要烘烤(bake)材质为纹理贴图,也可以通过UV展开来绘制纹理贴图

值得注意的是,Unity的材质不同于其他建模软件的材质,因此如果你不加处理直接导入Unity,那么不仅贴图会消失,而且部分材质也会失效,所以我提及了烘焙材质,它可以确定物体最终的纹理贴图和材质状态,在导入Unity时,只需要拖入FBX模型和对应烘焙的贴图即可。另外,修改器在导出的时候一定要勾选应用修改器,不然表面细分等修改是不会被导出的。

如图,草的贴图是在Blender里面通过渐变材质烘焙出来的

三、Shader、LOD

这里讲Shader太早了,Shader就是着色器,如上图的场景是比较明亮,但是右看起来比较难受,这时候就要调整全局Shader,又比如《原神》中二次元的风格:人物、环境(光照、石块、草地、路灯)等,夜晚是深蓝色的,而我们目前的夜晚是灰色的,这些全是由Shader完成的,Shader可以完成很多炫酷的特效(爆炸,撕裂,角色技能)。

LOD可以帮助低端手机节约性能开销,在保证画质一般的前提下,可以稳定流畅运行游戏,那么LOD就是一个超过多少距离,就使用一个少面的模型,比如一棵树我摄像机靠近时我要显示细节,走远了之后我其实也看不清什么细节了,但是渲染器还是会计算这个模型的各个面,所以在超过一定距离后就加载一个简易模型,最后超过太远的距离就直接不输出(地形直接就是一个轮廓)

LOD在优化性能方面起到了关键作用,减少不必要的开销

四、合理运用组件

Unity有很多组件比如RigidBody(刚体)、RayHit(射线)、EventTrigger(事件触发器)等

rigidbody是一个模拟真实物理运动的组件,如果配合的好可以和CharacterController一起使用,我们可以利用它来踢皮球

Ray射线可以运用在碰撞(视角碰撞、人物碰撞、子弹碰撞、选择物体)上,它虽然不是一个组件,但是我们当作为一个非常实用的方法

EventTrigger,类似于Win Form的button事件,这多使用在角色技能(短按长按)上,挂载EventTrigger的类Button控件(Image、Button、Canvas)可以接受鼠标事件(Pointer Down、Pointer Up),然后在脚本内编写触发代码

相关推荐
一步一个foot-print3 小时前
【Unity】Light Probe 替代点光源给环境动态物体加光照
unity·游戏引擎
@LYZY4 小时前
Unity 中隐藏文件规则
unity·游戏引擎·游戏程序·vr
霜绛6 小时前
C#知识补充(二)——命名空间、泛型、委托和事件
开发语言·学习·unity·c#
上海云盾安全满满6 小时前
APP应用怎么选择游戏盾
网络·游戏
棉猴7 小时前
《pygame中Sprite类实现多帧动画》注-通过多张序列帧显示动画2-2
开发语言·python·游戏·游戏程序·pygame
Sator19 小时前
使用Unity ASE插件设置数值不会生效的问题
unity·游戏引擎
AA陈超9 小时前
虚幻引擎5 GAS开发俯视角RPG游戏 P07-08 点击移动
c++·游戏·ue5·游戏引擎·虚幻
csd79810 小时前
从原理到实操:ddraw.dll是什么?为何游戏启动时频繁提示“找不到ddraw.dll”?解决思路全解析
游戏·dll修复工具·dll修复·dll丢失·dll缺失
程序猿追10 小时前
轻量级云原生体验:在OpenEuler 25.09上快速部署单节点K3s
人工智能·科技·机器学习·unity·游戏引擎
B0URNE11 小时前
【Unity基础详解】(7)Unity核心:动画系统
unity·游戏引擎