座舱3D Unity 入门

文摘   2024-06-14 18:18   广东  
Unity入门






Unity License


License比较: 购买Unity | 资源商店 - Unity官方商店

(https://store.unity.cn/compare-plans)


个人学习使用个人版, 个人开发者和小团队使用加强版, 正规企业使用专业版。


Editor Version


Unity使用三级版本号: xxxx.x.xx


主版本号为年份, 次版本号为个位数字, 修正版本号为两位数字


Unity会有LTS版本, 目前LTS版本有三个: 2019.4, 2020.3, 2021.3


2022目前只有测试版本, 未来也会有LTS版本。


Unity新版本相比老版本会新增大量新特性, 条件允许情况下应该尽可能选择新版本。


2021.3版本 Release Note:Unity - Manual: New in Unity 2021 LTS (unity3d.com) 

(https://docs.unity3d.com/Manual/WhatsNew2021LTS.html)


Render Pipeline


Unity - Manual: Render pipelines introduction (unity3d.com) 

(https://docs.unity3d.com/Manual/render-pipelines-overview.html)


渲染管线: 执行一系列处理让场景显示在屏幕上, 三个大步骤: 剔除, 渲染, 后处理。


Unity现在有个三个预置渲染管线: Build-in, URP, HDRP。


如何选择渲染管线:Unity - Manual: Choosing and configuring a render pipeline and lighting solution (unity3d.com)

(https://docs.unity3d.com/Manual/BestPracticeLightingPipelines.html)




Editor使用






操作步骤


1. 在场景中创建一个立方体, 创建一个材质并赋予立方体。


2. 调整摄像机, 让新建的立方体在画面中间。


3. 创建一个空对象, 赋予它Mesh Filter和Mesh Render组件

Assets & Scene


Assets就是Unity应用需要使用的资源的存储文件, 它可以是模型, 纹理, 配置, 脚本等等。Unity - Manual: Asset Workflow (unity3d.com)

(https://docs.unity3d.com/Manual/AssetWorkflow.html)


Scene就是Unity应用需要使用的资源的运行时结构, 它是一个树, 场景中的所有对象都是这个树的节点。Unity - Manual: Scenes (unity3d.com)

(https://docs.unity3d.com/Manual/CreatingScenes.html )


Camera


摄像机是将Unity构建的3D世界在屏幕上显示出来的关键工具. 它捕获3D物体并将其平面化。Unity - Manual: Cameras (unity3d.com) 

(https://docs.unity3d.com/Manual/CreatingScenes.html)


GameObject/Component, 

ECS



Entry Component System, 实体组件系统。做游戏 - 次时代Unity核心 - ECS介绍+实际操作(一) - 哔哩哔哩 (bilibili.com) 

(https://www.bilibili.com/read/cv6312903/)




应用构建






操作步骤


1. 创建一个让物体旋转的脚本, 并设置到之前创建的立方体上。


2. 导入车模, 导入镜头旋转unitypackage, 导入CarShader. 将它们组合成一个车模浏览Scene 。


3. 设置项目画面质量, 更改项目为Android项目, 打出APK包。


Engine&Script


让一个Unity应用运行起来并不需要写任何代码, 因为Unity引擎本身就是一个完整的3D世界构建程序。


开发者的代码是通过引擎预留好的点位去实现具体的业务逻辑, 就像web浏览器, 所以Unity里的代码更多的被称为脚本。


C#可以当Java用


MonoBehavior是可以挂载到GameObject上的点位。Unity - Scripting API: MonoBehaviour (unity3d.com)

(https://docs.unity3d.com/ScriptReference/MonoBehaviour.html)


Import


资源的导入, 直接移动复制到Assets目录下。Unity - Manual: Importing a model (unity3d.com)

(https://docs.unity3d.com/Manual/ImportingModelFiles.html)


unitypackage导入, 通过菜单。Unity - Manual: Importing local asset packages (unity3d.com) 

(https://docs.unity3d.com/Manual/AssetPackagesImport.html)


Assets store资源导入, 通过Package Manager窗口。Unity - Manual: Package Manager window (unity3d.com) 

(https://docs.unity3d.com/Manual/upm-ui.html)


Project Settings & 

Build Settings



通过Project Settings可以调节应用整体图像质量等配置。Unity - Manual: Quality (unity3d.com)

(https://docs.unity3d.com/Manual/class-QualitySettings.html)


通过Build Settings可以设置目标平台及平台相关配置。Unity - Manual: Build Settings (unity3d.com) 

(https://docs.unity3d.com/Manual/BuildSettings.html)




图形






操作步骤


1. 通过脚本创建一个正方形。


2. 创建一个具有纹理的材质并赋给正方形, 调整顶点UV观察变化。


3. 使用源码创建一个纯色的Shader并创建对应材质, 最后赋给正方形, 调整材质内颜色观察变化。


4. 使用Shader Graph创意一个渐变的Shader并创建对应材质, 最后赋给正方形。


5. 使用spot light演示: 实时光照, 烘焙光照, 直接光照, 间接光照。


6. 简单演示光照探针和反射探针的使用。


7. 简单演示粒子系统, 修改发射形状, 修改粒子Render。


8. 演示Unity默认程序化天空盒的太阳随平行光移动, 演示更换天空盒贴图。


Mesh


Mesh: 几何形状, 构成: 顶点, 三角面, 顶点法线, 顶点UV坐标。Unity - Manual: Example: creating a quad (unity3d.com) 

(https://docs.unity3d.com/Manual/Example-CreatingaBillboardPlane.html)


Texture & Shader & Material


Texture: 位图, 几何形状的表面描述。Unity - Manual: Textures (unity3d.com) 

(https://docs.unity3d.com/Manual/Textures.html)


特殊的Texture


Cubemap, 立方体贴图, 常用于天空盒, 光反射


Normalmap, 法线贴图, 用于描述表面的法线


Lightmap, 光照贴图, GI系统烘焙产物


Shader: 运行于GPU上的程序, 主要用于渲染计算。Unity - Manual: Shaders introduction (unity3d.com)

(https://docs.unity3d.com/Manual/shader-introduction.html)


主要有两类Shader, Vertex 和 Fragment, 前者用于确定点在屏幕上的位置, 后者用于确定点的颜色。


基本的无光照纯色Shader:URP unlit basic shader | Universal RP | 12.1.4 (unity3d.com)

(https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@12.1/manual/writing-shaders-urp-basic-unlit-structure.html)


无代码Shader编写工具Shader Graph:My first Shader Graph | Shader Graph | 12.1.4 (unity3d.com) 

(https://docs.unity3d.com/Packages/com.unity.shadergraph@12.1/manual/First-Shader-Graph.html)


Shader描述绘制的过程, Material描述绘制的数据, 两者结合完整描述如何物体表面。


Material就是DOP思想的实践。


Lighting


重要概念: 直接光照, 间接光照, 实时光照, 烘焙光照。Unity - Manual: Introduction to lighting (unity3d.com) 

(https://docs.unity3d.com/Manual/LightingInUnity.html)


环境光照系统


光照贴图:Unity - Manual: Lightmapping (unity3d.com)

(https://docs.unity3d.com/Manual/Lightmappers.html)


光照探针Unity - Manual: Light Probes (unity3d.com)

(https://docs.unity3d.com/Manual/LightProbes.html)


反射探针:Unity - Manual: Reflection Probes (unity3d.com)

(https://docs.unity3d.com/Manual/ReflectionProbes.html)


间接光照和反射主要通过烘焙实现, 烘焙依赖GameObject必须是静态的。


探针技术允许动态物体也能够接收到烘焙的间接光照和反射。


PBR & NPR


PBR: Physicallly-Based Rendering 严格按照物理规则渲染


NPR: Non-photorealistic rendering 非真实感渲染, 卡通渲染。PBR 基于物理的渲染_晓平同学的博客-CSDN博客_物理渲染 

(https://blog.csdn.net/wuyiping189/article/details/116096961)


PBR是一套光照处理模型, Unity的默认材质Shader就是完整的PBR实现。


Particle System


Unity - Manual: Particle systems (unity3d.com) 

(https://docs.unity3d.com/Manual/ParticleSystems.html)


Untiy提供两种粒子系统: 内置粒子系统和VFX Graph。


VFX Graph, 性能更好, 且类似ShaderGraph有强大编辑器, 目前只支持HDPR, UPR测试中。


Skybox


Unity - Manual: Skyboxes (unity3d.com) 

(https://docs.unity3d.com/Manual/skyboxes.html)


天空盒分两种


一种是固定天空, 实际上就是一张贴图。


一种是程序化天空盒, 能够在运行时变化。




GUI






操作步骤


创建一个Canvas, 添加一个Button, 添加点击响应。


uGUI


Unity提供3个GUI系统


UI Toolkit 最新, Editor Player都能用


Unity UI(uGUI) 较老, 常用, 只能在Player里用


IMGUI 用于Editor


Unity UI: Unity User Interface | Unity UI | 1.0.0 (unity3d.com) 

(https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/index.html)


Canvas是根节点, 可以配置整个UI的类型, Screen Space - Overlay, Screen Space - Camera, World Space


Layout;类似ConstraintLayout




动画






操作步骤


1. 创建一个简单的Animation, 创建一个简单的Animation Controller。


2. 创建具有两个状态的Animation Controller, 使用脚本进行控制。


3. 使用DOTween控制。


Animation Clips & 

Animation Controller



Unity - Manual: Animation System Overview (unity3d.com) 

(https://docs.unity3d.com/Manual/AnimationOverview.html)


DOTween


DOTween (HOTween v2) (demigiant.com) 

(https://dotween.demigiant.com/)


一个轻量级开源的动画框架




其他






Physics


Unity - Manual: Physics (unity3d.com) 

(https://docs.unity3d.com/Manual/PhysicsSection.html)


World building


Unity - Manual: World building (unity3d.com) 

(https://docs.unity3d.com/Manual/CreatingEnvironments.html)


Navigation and Pathfinding


Unity - Manual: Navigation and Pathfinding (unity3d.com) 

(https://docs.unity3d.com/Manual/Navigation.html)


2D


Unity - Manual: 2D (unity3d.com)

(https://docs.unity3d.com/Manual/Unity2D.html)






【智能座舱研究社】

纯粹|专业|真实

帮助更多人了解智能座舱,

服务更多车企产品经理。



亲爱的读者,由于公众号规则的变化,不标星《智能座舱研究社》公众号,无法收到最新推送,烦请大家加🌟。

智能座舱研究社
智能座舱一站式学习和交流平台
 最新文章