一、前言
嗨,大家好,我是新發,
有不少同學私信和評論讓我講講Unity的學習順序,說不知道怎么系統地去學,遇到很多問題不知道如何去處理,
嗯,那我就根據我自己的成長程序,寫一下Unity的學習路線吧,
二、我的大學
首先說下我的大學,我是2014年畢業于華南理工大學,讀的是資訊工程專業,專業課程主要如下:

我其實一開始并不確定我會從事游戲行業,也是在作業中不斷去學習積累的,希望我的學習路線可以幫助到學Unity的同學,由于內容太多,我只列出大致的大綱,大家可以跟著我的大綱進行學習,
三、Unity學前
1、C#基礎

1.1、資料型別
- 值型別
- 參考型別
- 指標型別
- 裝箱與拆箱
1.2、變數
- 定義
- 初始化
1.3、常量
- 定義
- 參考
1.4、運算子
- 算術運算子
- 關系運算子
- 邏輯運算子
- 位運算子
- 賦值運算子
1.5、判斷
- if 陳述句
- if … else陳述句
- 嵌套 if 陳述句
- switch 陳述句
- 嵌套 switch 陳述句
- ?: 條件運算子
1.6、回圈
- while 回圈
- for/foreach 回圈
- do … while 回圈
- 嵌套回圈
- break 陳述句
- continue 陳述句
1.7、陣列
- 宣告
- 初始化
- 賦值
- 訪問
- 遍歷
- 多維陣列
- Array與ArrayList的區別
1.8、列舉
- 宣告
- 訪問
- 與int、string的轉換
- 判斷列舉是否包含id
1.9、字串
- 字串比較
- 字串替換
- 字串連接
- 判斷是否含有字串
- 復制字串
- 判斷是否是以某個字串結尾
- 判斷是否是以某個字串開頭
- 字串判等
- 字串格式化
- 求索引
- 字串判空
- 使用分隔符連接字串陣列
- 使用分隔符分割字串
- 插入字串
- 移除字串
- 轉char[]
- 大小寫轉換
- 去除前后空白字符
1.10、命名空間
- 定義
- using
- 嵌套命名空間
1.11、類
- 定義
- 成員函式
- 建構式
- 解構式
- 靜態成員
- 密封類
- 靜態類
1.12、結構體
- 定義
- 特點
- 類與結構體的區別
1.13、介面
- 定義
- 繼承
1.14、方法
- 定義
- 呼叫
- 遞回
- ref與out
- 不定引數
1.15、封裝
- 訪問修飾符
- 類與結構體的區別
1.16、繼承
- 基類與派生類
- 介面多繼承
- 抽象類與介面區別
1.17、多型性
- 函式多載
- 運算子多載
- 抽象類
- 虛方法
1.18、運算子多載
- 定義
- 執行
1.19、IO操作
- File類
- Directory類
- Path類
- FileStream類
- StreamReader類
- StreamWriter類
- BinaryReader類
- BinaryWriter類
1.20、預處理
- #define
- #undef
- #if
- #else
- #elif
- #endif
- #region
- #endregion
1.21、例外處理
- try、catch、finally 、throw
- 例外類
- 自定義例外
2、C#進階

2.1、Attribute特性
- 預定義特性
- AttributeUsage
- Conditional
- Obsolete
- 自定義特性
- 宣告
- 構建
- 應用
2.2、反射
- 概念
- 原理
- 用途
- 優缺點
- 使用
2.3、屬性
- get/set訪問器
- 抽象屬性
2.4、索引器
- this[int index]
- 用途
- 多載索引器
2.5、委托
- 概念
- 用途
- 宣告
- 實體化
- 委托多播
2.6、事件
- 概念
- 用途
- 宣告
- 使用
- 事件與委托的區別
2.7、集合
- ArrayList
- Hashtable
- SortedList
- Stack
- Queue
- BitArray
2.8、泛型
- 特性
- 泛型類
- 泛型方法
- 泛型委托
- 泛型介面
- 泛型約束
2.9、匿名方法
- 概念
- 語法
- 委托與匿名方法
- Lambda運算式
2.10、不安全代碼
- unsafe
- 托管代碼與非托管代碼
2.11、正則運算式
- 字符轉義
- \r
- \n
- \b
- \t
- 字符類
- [character_group]
- [^character_group]
- [first - last]
- \w與\W
- \s與\S
- \d與\D
- 定位符
- ^
- $
- \A
- \Z
- \z
- \G
- \b
- \B
- 限定符
- *
- +
- ?
- {n}
- {n,}
- {n, m}
- Regex類
2.12、多執行緒
- 執行緒生命周期
- 創建執行緒
- 暫停執行緒
- 銷毀執行緒
四、Unity入門

1、Unity的安裝與激活
1.1、中國版與國際版
- 中國版
- https://unity.cn/
- 國際版
- https://unity.com/
1.2、Unity下載
- https://unity.cn/releases
1.3、Unity激活
- 專業版
- 加強版
- 個人版
2、Unity社區
2.1、中文手冊
- https://docs.unity.cn/cn/current/Manual/index.html
2.2、技術專欄
- https://developer.unity.cn/articles
2.3、技術問答
- https://developer.unity.cn/ask/home
2.4、中文課堂
- https://learn.u3d.cn/
2.5、官方Bilibili
- https://space.bilibili.com/386224375
2.6、資源商店
- https://assetstore.unity.com/
3、IDE安裝
3.1、Windows
- Visual Studio
- VS Code
- Sublime
3.2、MacOS
- XCode
- Sublime
4、認識編輯器
4.1、視圖面板
- Scene面板:上帝視角的場景
- Game面板:玩家視角的畫面
- Hierarchy面板:層級面板
- Inspector面板:屬性面板
- Paoject面板:工程目錄
- Console面板:日志面板
4.2、常用選單
- File / Open Project:打開工程
- File / Build Settings:打包設定
- Edit / Preferences:偏好設定
- Edit / Project Settings:工程設定
- Windows / Package Manager:插件包管理
5、工程目錄結構
5.1、Assets目錄
- Scripts:代碼目錄
- Editor:編輯器拓展目錄
- Plugins:插件目錄
- Gizmos:繪圖資源目錄
- Resources:資源目錄
- StreamingAssets:流式資源目錄
- RawAssets (自定義):生肉資源目錄
- GameAssets (自定義):熟肉資源目錄
- Shaders:Shader代碼目錄
- Scenes:場景目錄
5.2、ProjectSettings目錄
- 工程設定目錄
5.3、UserSettings目錄
- 用戶設定目錄
5.4、Library目錄
- 編譯目錄
6、圖片
- 匯入圖片
- 設定格式
7、模型
- 創建:幾何體模型
- 匯入:外部模型
8、材質球
- 創建材質球
- 設定材質球
- 設定Shader
- 賦值給模型
- 調整引數
9、聲音
- 匯入
- 播放
10、預設
- 創建預設
- 保存預設
- 編輯預設
- 加載預設
- Resources.Load
- AssetDatabase.LoadAssetAtPath
- AssetBundle.LoadFromFile
- 實體化預設
- Object.Instantiate
11、GameObject
- 創建GameObject
- 設定父節點
- 掛腳本
- 隱藏與現實
- 銷毀GameObject
12、Transform
- 移動
- 旋轉
- 縮放
13、運行測驗
- 運行
- 暫停
- 停止
14、Windows打包
- 打包:Windows
- 測驗
五、Unity初級

1、C#腳本
- 創建:Create / C# Script
- 掛腳本
- 手動掛:AddComponent
- 代碼掛:AddComponent
- 獲取腳本:GetComponent
- 移除腳本:RemoveComponent
- 激活與禁用
- 手動
- 代碼:enabled
- 生命周期
- Awake
- OnEnable
- Start
- Update
- FixUpdate
- LateUpdate
- OnDisable
- OnDestroy
- 列印日志
- 斷點除錯
2、UGUI
2.1、UGUI基礎組件
- Text
- Image
- RawImage
- Button
- Toggle
- Slider
- Scrollbar
- Dropdown
- InputField
- Canvas
- Panel
- ScrollView
2.2、UGUI實操
- 文字描邊
- 文字陰影
- 文字對齊
- 文字自動換行
- 血條/進度條
- 圓圈進度條
- 技能CD
- 圖片回圈
- 圖片置灰
- 圓形頭像
- 按鈕換圖
- 單選/多選框
- 左右開關
- 橫向布局
- 縱向布局
- 網格布局
- 切九宮格
3、引擎常用組件
3.1、Audio組
- AudioSource
- AudioListener
3.2、Effects組
- ParticleSystem
- LineRenderer
- TrailRenderer
3.3、Event組
- EventSystem
- EventTrigger
- GraphicRaycaster
3.4、Layout組
- RectTransform
- Canvas
- CanvasGroup
- CanvasScaler
- AspectRatioFitter
- ContentSizeFitter
- GridLayoutGroup
- HorizontalLayoutGroup
- VerticleLayoutGroup
- LayoutElement
3.5、Mesh組
- MeshFilter
- MeshRenderer
- SkinnedMeshRenderer
- TextMeshPro-Text
3.6、Miscellaneous組
- Animator
- Animation
3.7、Nevigation組
- NavMeshAgent
- NavMeshObstacle
3.8、Physics2D組
- Rigidbody2D
- BoxCollider2D
- CapsuleCollider2D
- CircleCollider2D
- CompositeCollider2D
- EdgeCollider2D
3.9、Physics組
- Rigidbody
- BoxCollider
- CapsuleCollider
- SphereCollider
- CharacterController
- TerrainCollider
3.10、Rendering組
- Camera
- CanvasRenderer
- SpriteRenderer
- Skybox
- SortingGroup
- Light
4、發布
4.1、基礎設定
- 設定APP名字
- 設定APP圖示
- 設定閃屏
- 設定版本號
4.2、平臺發布
- Windows平臺
- 設定解析度
- 設定后臺運行
- 發布exe
- Android平臺
- JDK安裝
- Android SDK下載
- NDK下載
- Gradle下載
- 設定keystore
- 發布apk
- iOS
- 匯出XCode工程
- 申請證書
- 安裝證書
- 設定證書
- 發布ipa
5、編輯器拓展
5.1、拓展Project視圖
- 右鍵選單
- [MenuItem(“Assets/My Tools/Tools 1”, false, 2)]
- 拓展布局
- [InitializeOnLoadMethod]
- EditorApplication.projectWindowItemOnGUI
5.2、拓展Hierarchy視圖
- 右鍵選單
- [MenuItem(“GameObject/My Create/Cube”,false,0)]
- 拓展布局
- [InitializeOnLoadMethod]
- EditorApplication.hierarchyWindowItemOnGUI
5.3、拓展Inspector視圖
- 拓展組件
- [CustomEditor(typeof(Camera))]
- public override void OnInspectorGUI()
- 拓展Context選單
- [MenuItem(“CONTEXT/Transform/New Context 1”)]
- MenuCommand
5.4、拓展Scene視圖
- 畫線或3D物體
- OnDrawGizmos
- OnDrawGizmosSelected
- 畫GUI
- [CustomEditor(typeof(Camera))]
- OnSceneGUI
- Handles
5.5、拓展頂部選單
- 帶勾選的選單
- [MenuItem(“MenuTest/Test”, false, 3)]
- Menu.GetChecked
- Menu.SetChecked
- 帶快捷鍵的選單
- [MenuItem(“Assets/HotKey %#d”,false,-1)]
- %:表示Ctrl鍵
- #:表示Shift鍵
- &:表示Alt鍵
六、Unity中級

1、UGUI案例
- 打圖集
- UI適配解析度
- UI界面分層
- 背景圖適配文字寬度
- 模型顯示在UI上
- 粒子顯示在UI上
- UI裁切3D模型
- UI裁切粒子
- 藝術字體制作
- 不規則按鈕
- 跑馬燈
- 圖文混排
- 圖片鏡像對稱
- 多層嵌套滑動串列
- 搖桿
- 雷達圖
- 折線圖
- 回圈串列
- 小地圖
- 頭頂文字
- 適配劉海屏
2、簡單物理
2.1、剛體
- 型別
- 移動
- 重力
2.2、碰撞
- 條件
- 檢測
2.3、觸發器
- 設定
- 檢測
2.4、物理材質
- 創建
- 摩擦力
- 彈性
- 設定參考
2.5、射線
- 發射
- 檢測
- 結果
2.6、彈簧
- 設定
- 案例
3、影片
- Animator
- Animation
- 狀態機變數
- 影片融合
- 狀態切換
- 混合樹
4、粒子系統
- 創建
- 制作
- 播放
- 案例
- 火焰
- 下雪
- 水花
- 閃電
- 激光
- 爆炸
- 煙霧
- 噴射
- 閃光
- 魔法陣
- 濺血
5、尋路導航
- 導航障礙物
- 導航烘焙
- 導航代理
- 點擊尋路
- 尋路跳躍
6、Json
- LitJson庫
- 構建JsonData
- JsonData與string的轉換
- JsonData與陣列和字典的轉換
7、二維碼
- ZXing庫
- 生成二維碼
- 保存為圖片
8、插值緩動
- DoTween插件
- 平滑移動
- 平滑旋轉
- 平滑縮放
- 平滑插值自定義變數
9、Zip壓縮與解壓
- Ionic.Zip.Unity插件
- 創建zip檔案
- 解壓zip檔案
- 顯示解壓進度
10、Behavior Designer
- 插件下載
- 編輯器界面
- 設定變數
- Composites類節點
- Decorators類節點
- Actions類節點
- Conditionals類節點
- 優先級與打斷
- 行為樹存盤
- 行為樹加載
- 行為樹控制
11、Cinemachine
- 插件安裝
- 攝像機跟隨
- 自由視角跟隨
- 固定視角跟隨
- 軌道鏡頭
- 軌道鏡頭跟隨
- 鏡頭融合
- 跟隨目標組
- 切鏡
- 自由觀察攝像機
- 狀態驅動攝像機
- 軌道物體
- 2D攝像機
- 與TimeLine配合使用
12、TimeLine
- 插件安裝
- 創建TimeLine資源
- 創建軌道
- Activation Track軌道
- Animation Track軌道
- Audio Track軌道
- Control Track軌道
- Signal Track軌道
- Playable Track軌道
- TimeLine倒放
13、Tilemap
- 插件安裝
- 創建調色板
- 制作瓦片
- 繪制瓦片
- 洗掉瓦片
- 填充瓦片
- 多瓦片涂刷
- 瓦片縫隙問題
- 瓦片序列幀
- 瓦片自適應方向
- 添加碰撞
14、ProBuilder
- 插件安裝
- 創建模型
- 編輯點線面
- 設定頂點顏色
- 鏡像克隆
- 編輯材質
- 同材質與顏色選擇
- 模型匯出
- 案例
- 跑酷場景
- 障礙物道具
15、SVN
- SVN客戶端下載與安裝
- SVN工程檢出
- SVN更新
- SVN提交
- SVN合并
- SVN日志查看
- SVN還原
- SVN對比修改
- SVN沖突解決
16、Python語言
16.1、用途
- 制作工具
16.2、Python語言基礎
- 環境搭建
- Windows
- Linux
- MacOS
- 變數
- 全域變數
- 區域變數
- 賦值
- 多變數賦值
- 數字
- 字串
- 集合
- 串列
- 元組
- 字典
- 型別轉換
- int(x [,base])
- long(x [,base] )
- float(x)
- str(x)
- tuple(s)
- list(s)
- set(s)
- dict(d)
- chr(x)
- 運算子
- 算術運算子
- 比較運算子
- 賦值運算子
- 邏輯運算子
- 位運算子
- 成員運算子
- 身份運算子
- 條件陳述句
- if …: elif …: else:
- 回圈陳述句
- while 回圈
- for 回圈
- 嵌套回圈
- break 陳述句
- continue 陳述句
- pass 陳述句
-字串 - 字串連接
- 轉義字符
- 字串運算子
- 字串格式化
- 三引號
- Unicode 字串
- 常用函式
- string.find(str, beg=0, end=len(string))
- string.format()
- string.index(str, beg=0, end=len(string))
- string.isdigit()
- string.join(seq)
- string.lower()
- string.upper()
- string.lstrip()
- string.rstrip()
- string.strip([obj])
- string.split(str="", num=string.count(str))
- string.startswith(obj, beg=0,end=len(string))
- string.endswith(obj, beg=0, end=len(string))
- string.replace(str1, str2, num=string.count(str1))
- 串列
- 創建
- 訪問
- 遍歷
- 增刪改查
- 排序
- 常用函式
- len(list)
- max(list)
- min(list)
- list.append(obj)
- list.count(obj)
- list.index(obj)
- list.insert(index, obj)
- list.pop([index=-1])
- list.remove(obj)
- list.reverse()
- list.sort(cmp=None, key=None, reverse=False)
- 元組
- 創建
- 訪問
- 連接組合
- 洗掉整個元組
- 常用函授
- len(tuple)
- max(tuple)
- min(tuple)
- tuple(seq)
- 字典
- 創建
- 訪問
- 遍歷
- 增刪改查
- 常用方法
- len(dict)
- str(dict)
- dict.clear()
- dict.get(key, default=None)
- dict.has_key(key)
- dict.items()
- dict.keys()
- dict.values()
- dict.setdefault(key, default=None)
- 日期和時間
- 獲取當前時間
- 獲取格式化的時間
- 格式化日期
- 常用函式
- time.time( )
- time.localtime([secs])
- time.sleep(secs)
- 函式
- 定義
- 呼叫
- 傳參
- 默認引數
- 不定長引數
- 匿名函式
- lambda函式
- return 陳述句
- 模塊
- 創建模塊
- import 陳述句
- from…import 陳述句
- 檔案IO
- input 函式
- open 函式
- File 物件
- close() 方法
- write() 方法
- read() 方法
- tell() 方法
- seek() 方法
- 檔案重命名
- 檔案洗掉
- mkdir 函式
- chdir 函式
- rmdir 函式
- 例外處理
- 標準例外
- 例外處理
- 觸發例外
- 自定義例外
- 面向物件
- 創建類
- self物件
- 創建實體
- 訪問屬性
- 物件銷毀
- 繼承
- 方法重寫
- 基礎多載方法
- 運算子多載
- 正則運算式
- re.match 方法
- re.search 方法
- 檢索
- 替換
- 多執行緒
- 創建
- 啟動
17、打包工具
- 打AssetBundle
- 代碼設定圖示
- 代碼設定應用名稱
- 代碼設定版本號
- 代碼設定閃屏
- 代碼設定解析度
- 代碼設定橫豎屏
- 打整包工具
- Windows平臺
- Android平臺
- iOS平臺
- 命令列打包
- Jenkins自動化打包
- Jenkins搭建
- 創建任務
- 執行命令列打包
- 通知企業微信機器人
- XCodeAPI
- 匯出XCode工程
- 自動設定XCode工程引數
- 生成ipa
- IL2CPP
- 支持64位系統
- 谷歌AAB格式
- 打包
- 安裝
18、實用工具
- Everything
- 快速搜索
- Hash
- 查看MD5
- Snipaste
- 截圖
- ScreenToGif
- 錄屏Gif
- BCompare
- 檔案對比
- HexEditor
- 十六進制查看器
- XMind
- 思維導圖
- VirtualBox
- 虛擬機
- 7z
- 檔案壓縮解壓
- Process Explorer
- 超強任務管理器
- PHP Study
- 快速Web服務器
- MuMu模擬器
- 高性能多功能Android模擬器
- AssetStudio
- 逆向Unity資源
- SecureCRT
- Linux遠程
- TightVNC
- MacOS遠程
- FlashFXP
- FTP工具
19、探索
- AR專案
- VR專案
- 機器學習 ML-Agents
- 流體模擬
七、Unity中高級

1、Lua語言
1.1、八大基本資料型別
- table
- string
- number
- bool
- nil
- function
- thread
- userdata
1.2、注釋
- 單行注釋
- 多行注釋
1.3、 變數
- 全域變數
- 區域變數
1.4、 回圈
- while
- for
- break
- ipairs
- pairs
1.5、 流程控制
- if then end
- elseif
- else
1.6、 函式
- function
- 多回傳值
- 可變引數
- 匿名函式
- 閉包
1.7、運算子
- 算數運算子
- 關系運算子
- 邏輯運算子
- 其他運算子
1.8、 字串
- 字串長度
- 字串拼接
- 雙引號單引號
- 轉義符
- 字串替換
- 字串查找
- 字串格式化
- 字串截取
- 大小寫轉換
1.9、 陣列
- 陣列長度
- 增刪改查
- 遍歷
- 排序
1.10、 表table
- 元素連接
- 增刪改查
- 遍歷
- 排序
1.11、 元表metatable
- 定義
- 元方法
- 設定元表
- 獲取元表
- __index
- __newindex
- 禁止表被修改
1.12、 模塊module
- 定義
- require
1.13、 協程
- 創建
- 啟動
- 掛起
- 嵌套
1.14、 檔案IO
- 創建檔案
- 判斷檔案存在
- 讀檔案
- 寫檔案
- 洗掉檔案
- 創建目錄
- 判斷目錄存在
- 洗掉目錄
1.15、 錯誤處理
- pcall
- xpcall
1.16、 垃圾回收
- 機制
- 流程
1.17、 面向物件
- 類封裝
- 繼承
1.18、 與C互動
- loadlib
- require
2、通信協議
2.1、ProtoBuf
- 原理
- 使用
- 不同語言版本的ProtoBuf
2.2、sproto
- 原理
- 使用
- 不同語言版本的sproto
3、接入SDK
3.1、Android Studio
- Android Studio安裝
- JDK安裝與環境變數配置
- 下載Android SDK
- Android Studio配置Android SDK
- Android Studio配置JDK
- 下載Gradle工具
- 設定build.gradle
- Java與SDK互動
3.2、XCode
- 匯入SDK包到XCode工程
- Objective-C與SDK互動
- plist配置權限
- 添加SDK系統庫
3.3、常見SDK
- 微信SDK
- 阿里支付SDK
- 應用寶SDK
- Bugly SDK
- 高德地圖SDK
- 信鴿推送SDK
- MSA SDK
- 廣點通SDK
- 華為SDK
- 小米SDK
- OPPO SDK
- VIVO SDK
- BiliBili SDK
- 谷歌SDK
- Facebook SDK
- Line SDK
- 百度SDK
- 九游SDK
3.4、Plugins目錄結構
- Android
- libs
- armeabi-v7a
- armv8-64
- x86
- res
- assets
- iOS
- .bundle
- .framework
- .h
- .mm
- .m
- .dll
3.5、Android平臺
- .jar包
- .aar包
- .so包
- AndroidManifest.xml
- C#與java互動
- C#與C/C++互動
3.6、iOS平臺
- C#與Objective-C互動
3.7、多SDK混接問題
- SDK依賴沖突
- 代碼、資源冗余
- 升級SDK麻煩
- 聚合SDK
4、ToLua框架
- 框架下載
- 交叉編譯tolua各個平臺庫
- Windows
- Android
- iOS
- MacOS
- 框架接入
- 資源管理器
- 界面管理器
- 網路管理器
- 聲音管理器
- C#與Lua互動
- 使用Lua撰寫業務邏輯
- 拓展框架
5、熱更新
5.1、版本號管理
- app版本號
- res版本號
5.2、熱更內容
- 代碼熱更
- C#代碼熱更新
- lua代碼熱更新
- 資源熱更
- 配置
- 預設
- 紋理
- 材質球
- 聲音
- 其他資源檔案
5.3、打包熱更包
- MD5
- lua加密
- 資源加密
- 打AssetBundle
- Zip壓縮
- 上傳Web服務器
5.4、執行熱更新
- 獲取更新串列
- 判斷版本號
- 下載
- MD5校驗
- 解壓Zip
- 加載AssetBundle
- 檔案解密
6、發行
- 多渠道發行
- 重簽名
- Android
- iOS
- 差異化
- 渠道號
- APP名字
- APP圖示
- APP閃屏
- APP Loading圖
- APP Logo
- 應用市場
- 開發者賬號
- 創建應用
- 設定元資料
- APP引數
- 接入SDK
- 聯調
- 提審
- 上架
- iOS企業簽
- iOS超級簽
- iOS企業版部署到Web服務器
- plist
- https服務器
- itms-services協議
7、部署
- 云服
- 阿里云
- 騰訊云
- SSH遠程
- SecureCRT工具
- 云盤
- oss阿里云
- cos騰訊云
- Linux常用指令
- cd
- mv
- ls -l
- cp
- rz -e
- sz -e
- ps -axj
- df
- top
- history
八、Unity高級

1、設計模式
- 簡單工廠模式
- 抽象工廠模式
- 工廠方法模式
- 策略模式
- 單一職責原則
- 開放-封閉原則
- 依賴倒轉原則
- 裝飾模式
- 代理模式
- 原型模式
- 模板方法模式
- 迪米特法則
- 外觀模式
- 建造者模式
- 觀察者模式
- 狀態模式
- 配接器模式
- 備忘錄模式
- 組合模式
- 迭代器模式
- 單例模式
- 橋接模式
- 命令模式
- 職責鏈模式
- 中介者模式
- 享元模式
- 解釋器模式
- 訪問者模式
2、游戲框架
- 工程目錄管理
- 網路管理
- 通信協議解決方案
- UI解決方案
- Lua框架
- 多語言解決方案
- 多渠道解決方案
- 多SDK混接解決方案
- 物件池管理
- 資源加載解決方案
- 熱更新解決方案
- 專案安全解決方案
- 編輯器工具
- 全域配置
- 事件管理
- 場景管理
3、性能優化
3.1、CPU
- 運用物件池,避免重復實體化
- 分幀運算,避免短時超負荷
- 資料快取,避免重復運算
- 演算法
3.2、 GPU
- 使用多層次細節LOD
- 使用光照貼圖
- 靜態合批和動態合批
- 簡化著色器
- 使用平臺推薦的壓縮格式
- 減少模型面數
- 減少貼圖大小
3.3、記憶體
- 模型區分高低模
- 釋放AssetBundle
- 降低模型面數
- 降低骨骼數量
- 降低貼圖大小
3.4、 包體
- 壓縮圖片
- 壓縮音頻
- 壓縮自帶庫檔案
- 拓展包
- 分段下載
3.5、 網路
- 資料流量優化
4、兼容、適配與穩定
- 多架構CPU兼容
- 奔潰率監控
- 日志上報
- Windows版本兼容
- Android版本兼容
- 解析度適配
- ADB除錯
- XCode除錯
5、自動化測驗
- AirTest
-
客戶端下載
-
Poco-SDK
-
設備連接
-
撰寫腳本
- 獲取螢屏尺寸
- 參考其他air腳本
- 元素定位
- 點擊元素
- 等待元素出現或消失
- 拖動
- 滑動
- 連續滑動
- 按住n秒拖動
- 長按
- 判斷元素是否存在
- 兩指擠壓收縮操作
- 無效的操作例外
- 節點或屬性不存在例外
- 等待超時例外
- 物件已被清除例外
- 自定義poco屬性
-
運行腳本
-
生成報告
-
6、圖形學與渲染
6.1、OpenGL
- 渲染管線
- 圖元
- Draw Call
- 頂點著色器
- 裁剪
- 螢屏映射
- 三角形設定
- 三角形遍歷
- 片元著色器
- 逐片元操作
- 固定渲染管線
- 可編程渲染管線
- GLSL語言
- 著色器編譯
- 光照模型
- 模板測驗
- 深度測驗
- 融混
- 幀快取
- 相機模式
- 齊次坐標
- 紋理映射
- 程式式紋理
- 噪聲
6.2、Unity Shader
- ShaderLab語言
- 表面著色器
- 頂點著色器
- 片元著色器
- Cg/HLSL語言
- 點和矢量
- 矩陣
- 矩陣定義
- 齊次坐標
- 平移矩陣
- 縮放矩陣
- 旋轉矩陣
- 坐標空間
- 模型空間
- 世界空間
- 觀察空間
- 裁剪空間
- 螢屏空間
- 標準光照模型
- 環境光
- 自發光
- 漫反射
- 高光反射
- 逐頂點光照
- 逐像素光照
- 紋理
- 常規紋理
- 法線紋理
- 漸變紋理
- 遮罩紋理
- 透明效果
- 渲染順序
- 透明測驗
- 透明混合
- 雙面渲染
- 螢屏后處理
- 調整螢屏亮度
- 調整螢屏飽和度
- 調整螢屏對比度
- 邊緣檢測(卷積)
- 高斯模糊
- Bloom效果
- 運動模糊
- 噪聲
- 消融效果
- 水波紋效果
- 全域霧效
- 渲染技術優化
- 動態批處理
- 靜態批處理
- 共享材質
- 減少頂點數
- 模型LOD技術
- 遮擋剔除
- 減少實時光和陰影
- 減少紋理大小
- 利用解析度縮放
6.3、ShaderGraph
- 入門
- Universal RP下載
- 創建Pipeline Assets
- 設定Pipeline Assets
- 升級shader
- 創建PBR Graph
- 創建變數
- 使用變數
- 創建節點
- 保存Graph檔案
- 創建材質球
- 材質球設定shader
- 材質球賦值給模型
- 調整材質球變數
- 案例
- 模型裁切
- 模型溶解
- 邊緣光效果
- 卡通陰影色塊效果
- 水紋疊加
- 積雪效果
- 不銹鋼效果
- UV抖動效果
- 頂點波動
- 馬賽克效果
- 水球效果
- 火焰效果
- 旋渦效果
- 閃電效果
- 全息效果
- 高斯模糊
- 自發光
- 粒子系統溶解效果
- 物體靠近區域溶解效果
- 2D描邊效果
- 子彈拖尾效果
- 模型上涂鴉
- 刮刮樂效果
7、代碼安全
- 代碼混淆
- dll加密
- 重新編譯mono
- 輔助so庫,hook
- IL2CP
- Lua代碼加密
8、逆向
8.1、編譯技術
- 詞法分析
- 語法分析
- 語意分析與處理
- 符號表
- 運行時存盤組織
- 優化
- 目標代碼生成
8.2、反編譯技術
- 逆向分析的各個階段
- 檔案裝載
- 指令解碼
- 語意映射
- 相關圖構造
- 程序分析
- 型別分析
- 結果輸出
- 逆向分析框架
- 靜態分析框架
- 動態分析框架
- 動靜結合的分析框架
- 指令系統
- 機器指令
- 匯編指令
- 可執行檔案
- 檔案格式
- 檔案頭
- 字串表
- 符號表
8.3、資源逆向
- AssetStudio
8.4、C#逆向
- ILSpy
8.5、C++逆向
- IDA
8.6、java逆向
- jd-gui
- dex2jar
8.7、AndroidManifest逆向
- AndroidStudio
9、演算法
- 復雜度分析:代碼執行效率和資源消耗
- 鏈表:LRU快取淘汰演算法
- 堆疊:瀏覽器的前進和后退功能
- 佇列:有限資源池的請求排隊
- 尾遞回:避免遞回過深導致的堆疊溢位
- 排序演算法基礎:從哪幾個方面分析排序演算法
- O(n2)排序:為什么插入排序比冒泡排序更受歡迎
- O(nlogn)排序:快速查找第K大元素
- 線性排序:根據年齡給100萬個用戶排序
- 排序優化:高性能通用排序函式
- 二分查找:省記憶體快速查找
- 二分查找的變體:快速定位IP地址對應的歸屬地
- 哈希表:Word軟體的單詞拼寫檢查
- 哈希表:打造一個工業級的哈希表
- 位圖:網頁爬蟲中的網址鏈接去重
- 哈希演算法:防止資料庫脫庫后用戶資訊泄露
- 樹和二叉樹:什么樣的二叉樹適合用陣列存盤
- 二叉查找樹:相比哈希表,二叉查找樹有何優勢
- 平衡二叉查找樹:為什么紅黑樹如此受歡迎
- 遞回樹:如何借助樹求遞回演算法的時間復雜度
- B 樹:MySQL資料庫索引是如何實作的
- 堆:如何維護動態集合的值
- 堆排序:為什么說堆排序沒有快速排序快
- 堆的應用:快速獲取Top 10熱門搜索關鍵詞
- 跳表:Redis中的有序集合型別
- 并查集:路徑壓縮和按秩合并這兩個優化是否沖突
- 線段樹:查找獵聘網中積分排在第K位的獵頭
- 樹狀陣列:實作一個高性能、低延遲的實時排行榜
- BF演算法:編程語言中的查找、替換函式是怎樣實作的
- RK演算法:借助哈希演算法實作高效的字串匹配
- BM演算法:文本編輯器中的查找和替換功能
- Trie樹:搜索引擎的搜索關鍵詞提示功能
- AC自動機:多模式串匹配實作敏感詞過濾
- 圖的表示:存盤微博、微信等社交網路中的好友關系
- 深度優先搜索和廣度優先搜索:如何找出社交網路中的三度好友關系
- 拓撲排序:確定代碼源檔案的編譯依賴關系
- 單源短路徑:地圖軟體計算出行路線
- 啟發式搜索:用A*演算法實作游戲中的尋路功能
- 小生成樹:隨機生成游戲中的迷宮地圖
- 流:解決單身交友聯誼中的多匹配問題
- 分治演算法:大規模計算框架MapReduce中的分治思想
- 回溯演算法:從電影《蝴蝶效應》中學習回溯演算法的核心思想
- 動態規劃:如何巧妙解決“雙11”購物時的湊單問題
- 動態規劃:如何實作搜索引擎中的拼寫糾錯功能
九、管理與規范
1、svn管理
- 分支管理
- 拉分支
- 分支合并
- 沖突解決
- SVN還原
- SVN追溯
- 賬號管理
- 權限管理
2、策劃規范
- 文案格式規范
- office軟體版本統一
- 需求作業流規范
- 檔案存盤規范
- 配置表欄位規范
- 原型設計圖規范
3、美術規范
- 資源目錄規范
- 資源命名規范
- 預設制作規范
- 預設節點規范
- 預設組件規范
- 預設模板
- 預設繼承
- 模型結構規范
- 面數規范
- 節點結構規范
- 尺寸規范
- 貼圖規范
4、技術檔案與沉淀
- 載體
- WIKI
- Confluence
- 技術博客
- 內容
- 模塊介面
- 配置說明
- GM命令
- 技術解決方案
- 規范說明
- 工具說明
十、補充:數學基礎
1、集合
- 集合基礎
- 容斥原理
2、函式
- 定義域、值域
- 函式的性質
- 單調性
- 奇偶性
- 周期性
- 凹凸性
- 連續性
- 可導性
- 有界性
- 收斂性
- 初等函式
- 一次、二次、三次函式
- 冪函式
- 雙勾函式
- 指數、對數函式
- 函式的迭代
- 函式方程
3、三角函式
- 三角函式影像與性質
- 三角函式運算
- 三角恒等式、不等式、最值
- 正弦、余弦定理
- 反三角函式
- 三角方程
4、向量
- 向量運算
- 向量坐標、數量積
5、數列
- 數列通項公式求解
- 換元法
- 特征根法
- 不動點法,迭代法
- 數學歸納法,遞回法
6、不等式
- 解不等式
- 均值不等式
- 重要不等式
- 柯西不等式
- 排序不等式
- 契比雪夫不等式
- 赫爾德不等式
- 權方和不等式
- 冪平均不等式
- 琴生不等式
- Schur不等式
- 嵌入不等式
- 卡爾松不等式
- 證明不等式的常用方法
- 利用重要不等式
- 調整法
- 歸納法
- 切線法
- 展開法
- 區域法
- 反證法
7、決議幾何
- 直線與二次曲線方程
- 直線與二次曲線性質
- 引數方程
- 極坐標系
8、立體幾何
- 空間中元素位置關系
- 空間中距離和角的計算
- 棱柱、棱錐、四面體性質
- 體積、表面積
- 球、球面
- 三角面
- 空間向量
9、排列、組合、概率
- 排列組合的基本公式
- 加法、乘法原理
- 無重復的排列組合
- 可重復的排列組合
- 圓排列、項鏈排列
- 錯位排列數
- 計數方法
- 映射法
- 容斥原理
- 遞推法
- 折線法
- 算兩次法
- 母函式法
- 證明組合恒等式的方法
- Abel法
- 算子方法
- 組合模型法
- 歸納與遞推方法
- 母函式法
- 組合互逆公式
- 二項式定理
- 概率
- 獨立事件概率
- 互逆事件概率
- 條件概率
- 全概率公式、貝葉斯公式
- 現代概率,幾何概率
- 數學期望
10、極限、導數
- 極限定義,求法
- 導數定義,求法
- 導數的應用
- 判斷單調性
- 求最值
- 判斷凹凸性
- 洛必達法則
- 偏導數
11、復數
- 復數概念及其運算
- 復數的幾個形式
- 復數的代數形式
- 復數的三角形式
- 復數的指數形式
- 復數的幾何形式
- 復數的幾何意義,復平面
- 復數與三角,復數與方程
- 單位根及應用
12、平面幾何
- 幾個重要的平面幾何定理
- 梅勒勞斯定理
- 塞瓦定理
- 托勒密定理
- 西姆松定理
- 斯特瓦爾特定理
- 張角定理
- 歐拉定理
- 九點圓定理
- 圓冪,根軸
- 三角形的巧合點
- 內心
- 外心
- 重心
- 垂心
- 旁心
- 費馬點
- 調和點列
- 圓內接調和四邊形
- 幾何變換
- 平移變換
- 旋轉變換
- 位似變換
- 對稱變換
- 反演變換
- 配極變換
- 幾何不等式
- 平面幾何常用方法
- 純幾何方法
- 三角法
- 決議法
- 復數法
- 向量法
- 面積法
13、多項式
- 多項式恒等定理
- 多項式的根及應用
- 韋達定理
- 虛根承兌原理
- 多項式的整除,互斥
- 拉格朗日插值多項式
- 差分多項式
- 牛頓公式
- 單位根
- 不可約多項式,最簡多項式
14、數學歸納法
- 第一數學歸納法
- 第二數學歸納法
- 螺旋遞回法
- 跳躍遞回法
- 反向遞回法
- 最小數原理
15、初等數論
- 整數,整除
- 同余
- 素數,合數
- 算數基本定理
- 費馬小定理,歐拉定理
- 拉格朗日定理,威爾遜定理
- 裴蜀定理
- 平方數
- 中國剩余定理
- 高斯函式
- 指數,階,原根
- 二次剩余定理
- Legendre 符號
- Gauss 二次互反律
- 不定方程
- 不定方程解法
- 同余法
- 構造法
- 無窮遞降法
- 反證法
- 不等式估演算法
- 配方發,因式分解法
- 重要不等方程
- 一次不等方程(組)
- 勾股方程
- Pell 方程
- 不定方程解法
- p 進制進位制,p 進制表示
16、組合問題
- 組合計數問題
- 組合恒等式,不等式
- 存在性問題
- 組合極值問題
- 操作變換,對策問題
- 組合幾何
- 凸包
- 覆寫
- 分割
- 整點
- 圖論
- 圖的定義,性質
- 簡單圖,連同圖
- 完全圖,樹
- 二部圖,k 部圖
- 托蘭定理
- 染色與拉姆塞問題
- 歐拉與哈密頓問題
- 有向圖,競賽圖
- 組合方法
- 映射法,對應法,列舉法
- 算兩次法
- 遞推法
- 抽屜原理
- 極端原理
- 容斥原理
- 平均值原理
- 介值原理
- 母函式法
- 染色方法
- 賦值法
- 不變數法
- 反證法
- 構造法
- 數學歸納法
- 調整法
- 最小數原理
- 組合計數法
十一、完畢
好了,肝了兩天,我已經把我能想到的都寫出來了,后面想到其他有補充的話我再繼續添加吧,希望可以幫助到學習Unity的同學,
我是林新發:https://blog.csdn.net/linxinfa
原創不易,若轉載請注明出處,感謝大家~
喜歡我的可以點贊、關注、收藏,如果有什么技術上的疑問,歡迎留言或私信,拜拜~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/295083.html
標籤:AI
