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),然后在脚本内编写触发代码

相关推荐
weixin_409383121 小时前
godot创建两种敌人僵尸 一种吐舌头 一种在角色脚下生成圆形伤害圈 两种僵尸均继承enemy脚本 理解继承
游戏引擎·godot
mxwin8 小时前
Unity Shader 跨平台兼容性:处理纹理坐标翻转与精度差异
unity·游戏引擎
王家视频教程图书馆8 小时前
godot 下载地址
游戏引擎·godot
世人万千丶12 小时前
开源鸿蒙跨平台Flutter开发:成语接龙游戏应用
学习·flutter·游戏·华为·开源·harmonyos·鸿蒙
派葛穆12 小时前
汇川PLC-Unity3d与汇川easy521plc进行Modbustcp通讯
unity·c#
small-pudding12 小时前
Unity URP + Compute Shader 路径追踪器实战:从可用到可优化
unity·游戏引擎
weixin_4239950012 小时前
unity 物体转向鼠标点击方向2d和3d
unity·计算机外设·游戏引擎
兔子零102412 小时前
Claude Code 都把宠物养进终端了,我做了一个真正能长期玩的中文宠物游戏
前端·游戏·游戏开发
mxwin13 小时前
Unity URP 下 Shader 变体 (Variants):multi_compile 与 shader_feature的关键字管理及变体爆炸防控策略
unity·游戏引擎
howlet214 小时前
AI生成cocos-creator打砖块游戏-跑通第1关(CodeBuddy)
人工智能·游戏·cocos2d