[编程开发] 【Unity3D】Unity3D技术栈

[复制链接]
yilaipan 发表于 2023-10-4 19:12:06|来自:北京 | 显示全部楼层 |阅读模式
1 前言

    本文梳理了笔者在学习 Unity3D 的过程中,对 Unity3D 的理解和学习路线,以帮助读者循序渐进地学习 Unity3D,后续笔者仍会持续更新 Unity3D 相关技术栈,并同步到本文中。
1.1 专栏文章特点


  • 知识系统:专栏从资源管理、物理引擎、音视频、UGUI、UI Toolkit、动画、导航、粒子、协程、网络、Shader、Shader Graph、GL、Lua 等多个专题深度剖析了 Unity3D 技术栈,帮助读者形成一个系统的 Unity3D 知识体系。
  • 循序渐进:专栏将专题及其知识点由易到难排布,避免读者往复查阅资料,使读者能够循序渐进地学习。
  • 科学严谨:专栏讲述的知识点或有 Demo 支撑、或有公式推导、或有源码佐证、或有官方资料可查,理论站得住脚,有理可循;对于一些概念,表述明确,尽量避免 “可能”、“也许” 等含糊不清的词语,避免使用疑问句、感叹句;对于拿捏不定的知识点,尽量不展现给读者,使读者能放心吸收专栏的知识。
  • 逻辑清晰:专栏尽可能将每个知识点的前因后果展现给读者,讲清楚 What、How、Why,使读者知其所以然。
  • 紧扣主题:对于专栏中的每篇文章,读者通过查阅文章标题和章节标题即可了解文章内容,方便读者快速阅读和筛选文章。
  • 语言简练:专栏使用书面的表达方式,避免使用口语表达,避免冗余陈述,避免描述与主题不相关的内容,避免带入个人情感,使读者阅读效率更高。
  • 图文并茂:专栏大量使用了 gif 动图和图片,使读者能够更直观地理解知识点。
  • 案例丰富:专栏通过大量的案例讲解知识点,使读者对知识点的理解更深刻。
  • 案例解耦:专栏尽可能使用最简单的案例解释知识点,力求一个案例只讲解一个知识点,避免将多个知识点揉在一个案例中,造成读者抓不住文章的重点。案例不是为了秀肌肉,而是为了讲清楚一个知识点。
  • 持续更新:专栏长期持续更新,给读者及时补充新的知识。
  • 多站发布:专栏在 CSDN、知乎、掘金、简书、博客园、GitCode 等网站都有发布,读者可以根据自己的喜好选择对应网站。
1.2 读者解惑

    不少读者给笔者留言,笔者就其中问得比较频繁且有价值的问题作出以下答疑解惑。
1)学完该专栏需要多久
    每个人的学习进度不一样,与每天投入时间、理解力、数学基础、心态、执行力等因素相关,具体学习时间较难评估。本专栏所有文章总页数为 979 页(截至 2023.9.14),读者可以根据平时阅读相同页数的书籍所消耗的时间来评估。
2)专栏知识点来自哪里
    专栏知识点主要来源于 B 站、博客网站(CSDN、知乎、掘金等)、GitHub、官方文档、书籍、源码、工作总结、生活灵感等。B 站是获取知识最快的途径,博客网站是资料最多的知识源(各个博主从不同的角度描述了对同一个知识点的理解,通过阅读不同博主的博客,对该知识点就能形成较全面的认知),GitHub 是 Demo 最多的知识源,官方文档是最全面的知识源(但是较难读懂,主要因为 Demo 太少,缺少动图),书籍是最系统的知识源,源码是最权威的知识源。
3)为什么网上那么多资料还要自己写博客

  • 网上资料虽多,但经常不对口,只有自己总结的才是自己想要的,自己的文章,想怎么修改就怎么修改,也方便后期进行扩展延申。
  • 通过总结,加深对知识点的理解。看别人资料时,碰到一知半解的地方,经常会选择性地放过自己;如果自己总结,不能发出去忽悠别人,不然很容易被喷,迫使自己必须弄清楚,有时候也能收到一些意外的收获。
  • 只有自己实践过、推导过的知识点,使用起来才会更放心、更顺手;光看别人的资料,不实践,不推导,后面用起来时可能会碰到一大堆问题,使得我们怀疑之前学的知识点的正确性。
  • 输出了大量的 Demo,工作中或多或少用得上,可以极大提高工作效率。
  • 打通 Unity3D 全栈,构建系统的知识体系,形成技术闭环。
4)写博客的动力是什么
    写博客的动力主要源于对 Unity3D 的兴趣和对未知的焦虑。希望积累更多的知识,能够更轻松地应对工作;碰到裁员时,也能更从容地面对。
2 相关网站

1)Unity 相关网站

  • Unity 官网:https://unity.cn
  • Unity 手册:https://docs.unity.cn/cn/current/Manual/index.html
  • Unity API:https://docs.unity.cn/cn/current/ScriptReference/index.html
2)模型下载网站

  • Asset Store:https://assetstore.unity.com/account/lists
  • Poly Haven:https://polyhaven.com/zh
  • OpenGameArt:https://opengameart.org
  • Sketchfab:https://sketchfab.com
  • Free3D:https://free3d.com/3d-models
  • CGTrader:https://www.cgtrader.com/free-3d-models
  • GrabCAD:https://grabcad.com/library
  • 微妙网:https://www.wmiao.com
  • 爱给网:https://www.aigei.com/3d/model
3)动画下载网站

  • Mixamo:https://www.mixamo.com
4)图片下载网站

  • 橙光:https://www.66rpg.com/Drawtrade/goods/goodslist
5)音频下载网站

  • freesound:https://freesound.org
6)配色方案网站

  • Flat UI Colors:https://flatuicolors.com
  • Trending Color:https://coolors.co/palettes/trending
3 基础入门


  • 常用快捷键
  • 地形Terrain
  • MonoBehaviour的生命周期
  • Transform组件
  • 人机交互Input
  • 角色控制器(CharacterController)
  • 场景切换、全屏/恢复切换、退出游戏、截屏
4 资源管理


  • 资源管理
  • 基于AssetBundle实现资源热更新
5 物理引擎


  • 刚体组件Rigidbody
  • 碰撞体组件Collider
  • 发射(Raycast)物理射线(Ray)
6 音视频


  • AudioSource组件
  • VideoPlayer组件
7 灯光和相机组件及其应用


  • 灯光组件Light
  • 相机
  • 立方体纹理(Cubemap)和天空盒子(Skybox)
  • 相机跟随
  • 缩放、平移、旋转场景
8 GUI和UGUI基础及应用


  • GUI控件
  • UGUI概述
  • UGUI之Text
  • UGUI之Image和RawImage
  • UGUI之Button
  • UGUI之Toggle
  • UGUI之Slider
  • UGUI之Dropdown
  • UGUI之InputField
  • UGUI回调函数
  • UGUI之布局组件
  • 血条(HP)
  • 摇杆
9 UI Toolkit


  • UI Toolkit简介
  • UI Toolkit容器
  • UI Toolkit元素
  • UI Toolkit样式选择器
  • UI Toolkit自定义元素
  • UI Toolkit数据动态绑定
10 动画


  • 2D动画
  • 人体模型及动画
  • 人物跟随鼠标位置
  • 动画回调函数、动画事件、动画曲线
  • 动画混合
  • IK动画
11 导航系统


  • 导航系统
  • 分离路面导航
  • 动态路障导航
12 特效组件


  • 拖尾TrailRenderer
  • 线段渲染器LineRenderer
  • 粒子系统ParticleSystem
  • 基于粒子系统实现烟花特效
13 并发程序


  • 协同程序
14 网络编程


  • 同步Socket通讯
  • 异步Socket通讯
  • Photon环境搭建
15 网格和Bounds应用


  • 绘制物体表面三角形网格
  • 点选物体、框选物体、绘制外边框
  • 绘制物体外框线条盒子
16 Unity Shader

16.1 图形学基础理论


  • 渲染管线
  • 空间和变换
  • 伽马校正
  • Shader常量、变量、结构体、函数
16.2 着色器


  • 固定管线着色器一
  • 固定管线着色器二
  • 表面着色器
  • 顶点和片元着色器
16.3 光照基础


  • 法线贴图和凹凸映射
  • 阴影原理及应用
  • 反射和折射
16.4 模型特效


  • 广告牌特效
  • 动态路径特效
  • 地面网格特效
  • 激光灯、碰撞特效
  • 选中物体消融特效
  • 基于模板测试和顶点膨胀的描边方法
  • 花瓣特效
16.5 屏幕后处理特效


  • 调整屏幕亮度、饱和度、对比度
  • 边缘检测特效
  • 高斯模糊特效
  • Bloom特效
  • 运动模糊特效
  • 选中物体描边特效
  • 水波特效
  • 半球卷屏特效
  • 卷轴特效
16.6 屏幕深度和法线纹理特效


  • 屏幕深度和法线纹理简介
  • 激光雷达特效
  • 流动雾效
  • 基于深度和法线纹理的边缘检测方法
  • 平面光罩特效
16.7 非真实渲染(NPR)


  • 素描特效
16.8 URP


  • Renderer Feature简介
17 Shader Graph


  • Shader Graph简介
  • Shader Graph节点
  • 程序纹理简单应用
  • 消融特效
  • 水面特效
18 GL应用


  • 使用GL绘制线段
19 逻辑热更新


  • Lua基础语法
  • ToLua逻辑热更新
  • xLua逻辑热更新
20 加载大模型


  • Cesium加载大地图
21 综合应用


  • Tank大战
  • 魔方
声明:本文转自【Unity3D】Unity3D技术栈。
全部回复2 显示全部楼层
tjz001 发表于 2023-10-4 19:12:36|来自:北京 | 显示全部楼层
可以合作吗?
zhengyan 发表于 2023-10-4 19:13:02|来自:北京 | 显示全部楼层
合作什么

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则