欢迎光临散文网 会员登陆 & 注册

史上最全Unity3D教程

2022-05-23 08:23 作者:玖佰分之壹万暴鲤龙  | 我要投稿

(含4个月全课程, 含1~724集,每一集知识点,知识点时间戳,互助群收集,资源网站收集等)

有道笔记(复制到浏览器打开):https://note.youdao.com/s/17qp3xZQ

目前进度724,预计每天5集



《课程编号,重要知识点及对应时间》

相关互助群(人都很少):369077198、1076281411、 858212274(欢迎评论区补充)

课程结构总讲:

本系列课程来自培训机构。 每年开一次班,分4个月授课

目前B站能找到的公开资料为:

2017年:1~4月

2018年:1~3月(第四个月残缺)

其中祁天暄老师的课程为 2017 第一个月,和2018第三个月

所以本笔记采用的课程为:

2017第一个月+

2017第二月+

2018第二个月(部分章节作为补充)+

2018第三个月+

2017第四个月

开始:这里是2017年第一月+第二月。链接:https://www.bilibili.com/video/BV19t411f7bg/https://www.bilibili.com/video/BV1qr4y1x7Ef(分P名称优化)


2017第一个月

P1~23 初识Unity。 即时遮挡剔除  Occlusion Culling 在P15

P24 2.C#基础04-01,03:10 .NET简介 12:51开始编程

P25 2.C#基础04-02,00:00 控制台输出,读取控制台输入

P26 2.C#基础04-03,00:00 代码结构讲解

P27 2.C#基础04-04,00:00 变量 12:10 数据类型

P28 2.C#基础04-05,00:00 变量语法

P29 2.C#基础04-06,00:00 变量案例 08:31 调试 17:43 练习

P30 2.C#基础04-07,00:00 练习讲解 11:46 本章书籍推荐

P31 2.C#基础05-01,00:00 上节回顾

P32 2.C#基础05-02,00:00 项目打开方式 02:25 默认启动项 06:06 占位符,格式化字符串

P33 2.C#基础05-03,00:00 控制台使用占位符 02:25 标准数字字符串格式化 13:11 转义字符

P34 2.C#基础05-04,00:00 编译原理

P35 2.C#基础05-05,01:00 上节回顾 02:10 赋值运算符 05:44 算术运算符

P36 2.C#基础05-06,00:00 比较运算符 02:34 逻辑运算符

P37 2.C#基础05-07,00:00 快捷运算符 04:45 一元运算符 15:22 三元运算符 19:53 优先级

P38 2.C#基础05-08,01:32 数据类型转换 10:27 获取字符串中的字符

P39 2.C#基础05-09,00:56 上节练习讲解

P40 2.C#基础05-10,00:36 隐式转换,显示转换

P41 2.C#基础05-11,00:00 数据相加的结果类型

P42 2.C#基础05-12,01:09 选择语句if…else…

P43 2.C#基础05-13,00:00 练习讲解 15:30 if..else..的简化写法

P44 2.C#基础05-14,00:00 练习讲解 05:40 switch…case…

P45 2.C#基础05-15,00:00 练习讲解 02:04 case简化写法

P46 2.C#基础06-01,00:00 重点回顾 03:42 短路逻辑

P47 2.C#基础06-02,00:00 for循环 12:37 作用域

P48 2.C#基础06-03,00:00 练习讲解 11:05 while循环

P49 2.C#基础06-04,00:00 练习讲解 14:40 do…while…循环

P50 2.C#基础06-05,00:00 练习讲解 08:40 break退出循环 10:18 跳转语句

P51 2.C#基础06-06,00:00 方法

P52 2.C#基础06-07,00:00 方法参数

P53 2.C#基础06-08,00:00 怎么使用别人的方法 10:00 如何定义方法

P54 2.C#基础06-09,00:00 方法练习(打印日历)

P55 2.C#基础06-10,00:00 练习讲解

P56 2.C#基础06-11,00:00 方法的好处

P57 2.C#基础07-01,00:00 重点回顾 28:01 练习讲解

P58 2.C#基础07-02,00:46 方法的重载

P59 2.C#基础07-03,00:00 递归

P60 2.C#基础07-04(1),00:00 数组 23:20 练习讲解

P61 2.C#基础07-05(1),00:00 数组练习 15:56 数组的其他写法

P62 2.C#基础07-06,00:58 练习讲解

P63 2.C#基础07-07(1),05:27 数组foreach 19:55 foreach简化写法 26:07 Array创建数组 31:15 object

P64 2.C#基础07-08,00:00 数组常用方法及属性

P65 2.C#基础07-09,00:00 一个练习

P66 2.C#基础08-01,00:00 重点回顾

P67 2.C#基础08-02(1),00:00 练习讲解

P68 2.C#基础08-03(1),00:00 练习讲解

P69 2.C#基础08-04,00:00 for for循环嵌套

P70 2.C#基础08-05(1),00:00 冒泡排序算法

P71 2.C#基础08-06,00:00 冒泡排序算法

P72 2.C#基础08-07,00:00 练习讲解 10:42 二维数组

P73 2.C#基础08-08(1),16:10 2048简介 25:26 练习讲解

P74 2.C#基础08-09(1),00:00 2048核心算法

P75 2.C#基础08-10(1),00:00 2048讲解

P76 2.C#基础09-01,00:00 重点回顾

P77 2.C#基础09-02(1),00:00 交错数组

P78 2.C#基础09-03,00:00 参数数组

P79 2.C#基础09-04(1),00:00 数据类型

P80 2.C#基础09-05(1),25:58 数据类型与方法

P81 2.C#基础09-06(1),00:00 数据类型在方法中的应用

P82 2.C#基础09-07(1),00:00 数据类型应用 06:35 引用参数 13:31 输出参数

P83 2.C#基础09-08,00:55 练习讲解

P84 2.C#基础09-09,00:00 数据类型总结

P85 2.C#基础09-10(1),03:04 拆装箱

P86 2.C#基础09-11,00:00 string

P87 2.C#基础09-12,00:00 string

P88 2.C#基础10-01,00:00 重点回顾

P89 2.C#基础10-02,00:00 重点回顾

P90 2.C#基础10-03(1),00:00 枚举(简单枚举)

P91 2.C#基础10-04(1),00:00 标志枚举多选

P92 2.C#基础10-05(1),00:00 类和对象

P93 2.C#基础10-06(1),00:00 类的内存使用

P94 2.C#基础10-07(1),00:27 访问修饰符 09:40 属性


🌝笔记🌝数据成员:包括字段(首字母小写) , 属性

构造函数:无构造函数=系统创建默认的无参数构造函数 ;特点:没有返回值,与类同名 ;

方法成员:方法,构造函数

属性:字段的”助理“,首字母大写,用get、set 来操作字段

Class Wife{

Private string name;//字段

Private int age;//字段

Public string Name{ //属性

get{return name;}

set{this.name=value;}

}

}

public int Age{get... set}//省略

public Wife (string name,int age) //构造函数

{this.Name=name;this.Age=age;}


方法成员设置为private,为了参数进来时验证

P95 2.C#基础10-08(1),05:43 构造函数

P96 2.C#基础10-09,00:00 主动调用构造函数 09:35 this关键字 11:20 类结构

P97 2.C#基础10-10,00:00 练习

P98 2.C#基础10-11,00:00 练习讲解 06:25 方法举例 10:15 自动属性

P99 2.C#基础10-12,00:00 练习


🌝笔记🌝C#集合 List<数据类型> , 泛型集合=广泛的数据类型

Listlistxx=new List(2);

C#字典集合 根据?查找? , 适用于更大量数据

Dictronarydic =new Dictionary


P100 2.C#基础11-01(1),00:00 枚举回顾 14:30 类和对象回顾

P101 2.C#基础11-02(1),00:46 练习讲解 27:57 c#泛型集合 35:48 字典集合

P102 2.C#基础11-03,02:22 继承 15:14 protected访问级别


🌝笔记🌝protected 只有自己和儿子能用

父类型引用指向子类型对象是可以,只能用父类成员


P103 2.C#基础11-04(1),00:00 父类子类转换

P104 2.C#基础11-05(1),00:55 静态Static 18:32 静态成员变量


🌝笔记🌝静态成员变量=静态字段: 属于类,类被加载时初始化,且只有一份

静态构造函数=类加载时调用一次,初始化类的静态成员

尽量在分别的构造函数中初始化实例/静态成员,unity不会报错。


P105 2.C#基础11-06(1),00:52 静态构造函数 09:30 静态方法 23:57 静态类

P106 2.C#基础11-07,00:00 二维数组获取各方向数据

P107 2.C#基础11-08,00:00 二维数组助手类

P108 2.C#基础11-09(1),00:00 结构体


🌝笔记🌝构造体自带无参数构造函数,不能写无参数构造函数

使用自动属性时,有自动属性为参数的构造函数需要“:this()”

适合封装小型相关变量, 不会造成内存垃圾


P109 2.C#基础11-10(1),00:00 2048核心类-移动

P110 2.C#基础11-11,00:00 2048核心类-生成数字

P111 2.C#基础11-12,00:00 2048核心类-使用

P112 Unity01-01 复习C语言基础

P113 Unity01-04 开发工具介绍、语法结构、编译原理、创建脚本

P114 Unity01-05 、Unity生命周期(必然事件/消息)、Unity特性(【SerializeField】、【HideInInspector】、【Range(xx,yy)】)、C#类和脚本的异同、脚本中不写构造函数、不能在子线程访问主线程的成员、

P115 01-04 Awake()、Start()、Time.time、脚本启用、脚本禁用、Random.range()、OnEnable()、

P116 01-05 FixedUpdate()、Update()、LateUpdate()、OnMouseXXX()、OnBecomeXXX()、

P117 生命周期、OnReset()、Reset、

P118 调试、反编译

P119 调试


🌝笔记🌝加断点-attach to unity-unity play-

单帧:attach to unity - unity play - 暂停游戏 - 加断点-单帧执行

右键-快速监视

底下点“即时窗口”


P120 Component、OnGUI()、【Obsolete】、transform()、.position、GetComponent()、component.material.color、Color

P121 01-10 GetComponents<>()、GetComponentInChildren<>()、GetComponentsInParent<>()、CompareTag()、

P122 01-11 类关系、、.localPosition、.Scale、.localScale、.lossyScale

P123 01-12 transform.Translate()、transform.Rotate()、Space.world、RotateAround()、GUI.RepeateButton()、Vector3.zero、Vector3.Forward、transform.Root、SetParent()、transform.parent()

P124 01-13 transform.Find()、transform.GetChild()、transform.childCount、

P125 01-14 GameObject、activeSelf、setActive、activeInHierachy、AddComponent()、Find()、FindGameObjectsWithTag()、FindWithTag()、Destroy()、DestroyImediate()、DontDestroyOnLoad()、FindObjectOfType()、FindObjectsOfType()、Object

P126 02-01 复习

P127 02-02 练习题解答、Enemy、FindEnemyDemo、查找血量最低的敌人、在层级未知的情况下找物体(递归)、

P128 02-03 Time.deltaTime、fixedDeltaTime、Time.scaleTime

P129 02-04 Time.unscaledTime、Time.unscaledDeltaTime、Time.relatimeSinceStartup

P130 02-05 倒计时组件、string.Format

P131 02-06 倒计时组件、如何保证每秒执行一次、System.DateTime.Now、Invoke、InvokeRepeating

P132 02-07 停止倒计时、CancelInvoke、总结回顾三种倒计时的三种方法

P133 02-08 预制件Prefabs、

P134 02-09 Animation、动画视图、动画面板介绍、录制动画、Animation组件、创建动画、时间线、

P135 02-10 Animation方法、属性介绍、isPlaying、Play()、PlayQueued()[播放完成后再播放]、crossFade()【平滑效果(人物动画)】、.speed、.wrapMode、.length、.time、


🌝笔记🌝速度为倒着播:anim["动画名称"].speed = -1;

从最后开始播:anim["动画名称"].time=anim["动画名称"].length;


P136 02-11 VR作业需求分析、介绍模型

P137 02-12 VR作业需求分析

P138 03-01 复习

P139 03-02 找最近的敌人 练习 解答、Vector3.Distance()

P140 03-03 EnemyMotor属性方法定义、EnemyStatusInfo属性方法定义、EnemyAnimation属性方法定义

P141 03-04 AnimationAction类、EnemyAI属性方法定义、

P142 03-05 WayLine定义、EnemySpawn属性方法定义、

P143 03-06 EnemyMotor=>MovementForward()、PathFinding()、

P144 03-07 EnemyAI=>onUpdate()、EnemyAnimation 将模型的动画和属性绑定、EnemyAI => Attack()


🌝笔记🌝MCV 架构, M沟模型, C核心逻辑, V沟通视觉表现, 模型和具体视觉表现需要更改需要改动C。

M和C案例:

M: 封装具体的模型动画, 先创建 Private Animation anim;用GetComponentInChildrn 获取引用组件。再用public string 字段用于封装动画字符串, 做Play 和 Isplaying两个方法即可。

C:直接调用M,无需触及具体动画。


P145 03-08 EnemySpawn属性方法定义、【RequireComponent(typeof())】

P146 03-09 EnemySpawn.CalculateWayLines()、WayLine构造函数

P146 03-10 EnemySpawn.SelectUsableWayLines()、EnemyAI.GenerateEnemy()、EnemyAI.createEnemy()

P147 03-11 EnemyStatusInfo.Death()

148 3-11 寻路模块完善,死亡附带的指令,现阶段“回调方式”

149 1-1 Input 、练习:瞄准镜

150 1-2 瞄准镜讲解,Mathf.Lerp

151 1-3 瞄准镜倍数数组

152 1-4 FPS Controller,枪模型,火光节点

153 1-5 虚拟按键

🌝笔记🌝

Gravity 复位速度

Sensitivity 绝对值增加速度

Mouse X/Y 右上为正

鼠标滚轮-Mouse Movement-3rd axis

  • raw- 只输出-1/0/1

154 1-6 虚拟按键练习

155 1-7 3D数学介绍, Magnitude、Normalize

🌝笔记🌝

debug.DrawLine

debug.LogFormat

156 1-8 向量加减

157 1-9 向量与标量乘除=向量的缩放,9分0秒 三角函数,角度弧度弧度:弧长等于半径为1弧度, 360角度=2π弧度

🌝笔记🌝

弧度:弧长等于半径为1弧度, 360角度=2π弧度

158 1-10 三角函数/反三角函数

159 1-11 三角函数API, unity中演示

160 2-1 复习

161 2-2 向量点乘,29分30叉乘

🌝笔记🌝Vector3.Dot (点乘)=3个量分别相乘的和=向量相乘的绝对值*cos(2个向量夹角) , 用acos 求得角度为0到180度

float dot=Vector3.Dot(a.normalized,b.normalized);

float angle=Mathf.Acos(dot)*Mathf.Rad2Deg


=================

Vector3.Cross(叉乘)=两向量所组成面的垂直向量,模长为两向量模长乘积乘夹角的正弦值(模长一般用不上)

1.结果的正负可以用于判断两个向量的顺逆时针关系,左手法则,配合点乘可以求0~359.9度内的夹角(原本只能判断0~180度)

2.获得垂直的向量

162 2-3 叉乘,实战使用3D数学

163 2-4 EulerAngle

欧拉角: y为世界坐标,,其他为自身坐标

unity规定(避免表达不唯一):

x轴旋转角度 -90~90度

y轴旋转角度0~360度

164 2-5 四元数 Quaternion.Euler

🌝笔记🌝四元数的组成:向量xyz和标量w, 旋转轴为向量V,旋转弧度为Theta,

x = sin(theta /2)*V.x

y = sin(theta /2)*V.y

z = sin(theta /2)*V.z

w=cos(theta/2)

API: Quaternion qt=this.tranform.rotation

165 2-6 枪口火光(英雄无敌)

166 2-7 四元数

🌝笔记🌝向量*四元数=以四元数规定方式旋转后的向量

四元数*四元数=累加

167 2-8 四元数实战:炸弹-障碍物-玩家范围判定

168 2-9 四元数实战:炸弹-障碍物-玩家范围判定(2)

169 2-10 画图解析实战、6分10秒 三维函数API

🌝笔记🌝法向量:垂直于平面的,可以确定这个平面的向量

Vector3.MoveTowards(开始地,目的地,速度) ;匀速移动

Vector3.Lerp(物体坐标,目的地,比值) ;大速到小,永远无法到达

Vector3.Lerp(起始地,目的地,animationCurveXX.x+=time.deltatime) ;按照比例输出值,和AnimationCurve;中保持一致(需声明)

170 2-11 三维函数API,投影、反射、 Vector3.MoveTowards、Vector3.Lerp

171 2-12 四元数与欧拉角互转,Quanternion.AngleAxis/LookRotation/Lerp/RotateToward/Angle/FromToRotation,30分练习根据键盘方向旋转角色并移动

🌝笔记🌝Quanternion.AngleAxis 轴角旋转

Quanternion.LookRotation 给他目标前方(或者加上上方),输出需要的转动的四元数

Quanternion.Lerp 其中一个值永远无法达到时,用Quanternion.Angle求角度差值

Quanternion.FromToRotation(Vector3 fromDirection, Vector3 toDirection)

172 3-1 复习、12分 贝塞尔曲线、参数方程

🌝笔记🌝https://blog.csdn.net/xiaozhangcsdn/article/details/98963937 贝塞尔曲线

173 3-2 练习答案-根据键盘方向旋转角色并移动

174 3-3 复习,13分屏幕坐标系,视口坐标系

175 3-4 坐标系转换

176 3-5 2D飞机游戏实战,边缘停止和一进一出

177 3-6 物理引擎

178 3-7 刚体,碰撞器

179 3-8 触发器,Oncllision相关方法

180 3-9 Oncllision和 On trigger

181 3-10 射线

🌝笔记🌝Physics.Raycast(起点坐标,方向,out受击物实例,mask)

182 3-11 武器系统实战(英雄无敌 需求分析

183 3-12 武器系统

184 3-13 武器系统 虚方法

185 3-14 武器系统 子弹

🌝笔记🌝Resources.Load<类型>(“目录/名称”)

186 1-1 复习,物理材质

187 1-2 武器系统 枪

188 1-3 武器系统 动画 PlayQueued

🌝笔记🌝/短动画用PlayQueued播

189 1-4 武器系统 细节查错

190 1-5 武器系统 挂脚本、制作简易子弹,

191 1-6 武器系统 PlayerStatusInfo 全局实例、测试

192 1-7 武器系统 子弹脚本(包含射线),19分30秒 标签和特效资源名称对应

193 1-8 武器系统,bullet 子类,层和标签

🌝🌝instantiate()as gameobject 强制转换object为gameobject

194 1-9 特效垂直于法线,修bug

195 2-1 复习需求分析,敌人生成器

196 2-2注视纠错,重复死亡纠错

197 2-3 VR介绍

198 2-4 VR设置

199 2-5 VR脚本

200 2-6 VR脚本

201 2-7 VR脚本

202 2-8 VR脚本

203 2-9 VR脚本

204 3-1 VR脚本

205 3-2 VR脚本

206 3-3 VR脚本

207 3-4 UGUI 简介、发展史

208 3-5 Canvas、顺序、画布模式

Canvas内物体根据像素改变大小

Canvas之间,谁数字大盖别人

Canvas内,谁在下方盖别人

Screen Space : 2D的,不随主摄像机移动而改变

Overlay:永远盖住3D物体,UI独立渲染,屏幕坐标和世界坐标一致,性能好。

Camera:如果不指定渲染摄像机则等同于Overlay模式。 画布跟着摄像机参数运动。Plane Distance: 画布与摄像机距离。

Screen Space-Camera 设置: 如果有盖住UI的需求就用Camera。一般建立深度值+1的UICamera,设置为Depth only(仅渲染物体),Culling musk 设置为UI。主摄像机不看UI. 有物体需要盖住UI时,设置物体的tag为UI

209 3-6 Screen Space-Camera

210 3-7 轴心、Anchor、Image

2D模式下,Pivot模式下可移动的圆圈就是轴心点

图片Texture Type换成Sprite 再拖入 Image

Anchor和屏幕与组件4个角保持相对位置不变,一般4个不分开(位置自适应),如果分开则会随之拉伸(大小自适应)

211 3-8 代码访问Canvas,this.transform as RectTransform

212 3-9 字体、button

213 3-10 Slider、Toggle、DropDown

214 3-11 设置屏幕比例,基础控件、Panel,布局组Layout Group

215 3-12 自动布局

216 4-1 UI性能优化,sprite切割

217 4-2 2048代码,读取精灵图集Resources.LoadAll、Dictionary

218 4-3 2048代码,脚本生命周期

Awake: 创建物体,立刻执行。 涉及到创建物体,需要

219 4-4 2048代码,静态方法,可空值类型

int? intxx 可空值类型

intxx.value 可空值类型的值

220 4-5 2048代码、核心类与GameController交互 ,脚本的引用的数组

221 4-6 UGUI 事件、按钮、文本框

222 4-7 UGUI事件、代码、15分Vr的事件

输入类:建立在点选基础之上

IscrollHandler 滑动鼠标滚轮

ImoverHandler 移动,awsd 或者上下所有

IsubmitHandler 回车

ICancelHandler esc

223 4-8 UGUI事件、拖拽类演示、

224 4-9 优化拖拽效果,接口

225 4-10 2048 更新界面和输入操作

226 4-11itween(UI动画插件)

227 4-12 2048 itween实战



2017第二个月,链接同上)

(备注:第二个月也可以选用2018年的,目前没有笔记,连接为: https://www.bilibili.com/video/BV1WL4y1F771/?p=37

2017第二个月



228 1-1 课程介绍,集合,泛型

229 1-2 C#文档, ArrayList/List API

230 1-3 Hashtable/Dictionary,嵌套字典

231 1-4 栈Stack(Lifo)

232 1-5 栈案例,队 Queue

233 1-6 持久化储存(轻量级储存)及其案例 PlayerPrefs

234 1-7 换装游戏

235 1-8 换装游戏,换武器

236 1-9 换装游戏,换武器Mesh和Render.material.mainTexture

237 2-1换装游戏 NGUI

238 2-2 换装游戏 托管

239 2-3换装游戏 思路

240 2-4 换装游戏 按钮-业务-工厂 架构

241 2-5 换装游戏 测试,排错

242 2-6 换装游戏 使用dictionary 优化性能

243 2-7 车展练习题

244 3-1 车展练习题答案

245 3-1 车展练习题 取余+Reverse

246 3-3 协程 ,简介,迭代器

247 3-4 协程 , 计时器练习

248 3-5 协程, 攻击变色练习

249 3-6 协程, 巡逻练习

250 3-7 协程的嵌套

251 3-8 IO 介绍

相关类:

DriveInfo, 驱动器相关

File,读写文件,整体操作

FileInfo,多一个length(了解文件占多少字节)

Directory, 文件夹 (DirectoryInfo,都是实例成员版本)

string pass=@“D:/AX/BX"

Path,路径相关字符串处理

IO Stream,数据流,偏向底层

252 3-9 IO ,Directory,DirectoryInfo,Path,File

GetDIrectories 得到的路径是右斜杠“\”

253 3-10 IO ,GetDIrectories

254 3-11 File.ReadAllLine, StreamingAssets, 嵌套字典+IO

255 4-1 IO,处理数据装入字典

256 4-2 IO, Stream

257 4-3 Unity寻路系统,基础介绍,组件,烘焙,API

258 4-4 Unity寻路系统,Off Mesh Link

259 4-5 Unity寻路系统,Radius,Height,Base Offset ,Steering,Speed,Auto Braking,Obstacle Avoidance

Radius/Height 相当于寻路的碰撞

Base Offset 上下调整

260 4-6Unity寻路系统,Nav Mesh Obstacle

261 4-7 Unity寻路系统,Bake 相关,Areas

262 4-8 Unity寻路系统,Areas Mask

263 4-9 Unity寻路系统,Areas-Cost,agent. areaMask=-1/0/2/4...

264 4-10 Unity寻路系统,复习,插件

265 4-11 Physics.Raycast,介绍

266 4-12 Physics.Raycast,结合寻路系统

267 5-1 Physics.Raycast,小地图,hitinfo.tag

268 5-2 Physics.Raycast,UI跟随hit点

269 5-3 Physics.Raycast,枪口射线,

270 5-4 Physics.Raycast,枪口射线,显示红点

271 5-5 Physics.Raycast,拖拽移动物体思路

272 5-6 Physics.Raycast,拖拽移动物体

273 5-7 Physics.Raycast,激光效果,lineRenderer,材质偏移

274 5-8 Physics.RaycastAll

275 5-9 Physics.OverlapSphere

276 5-10 射线复习

277 3-1 城市勇士 寻路,animation换animator

291 1-1 Mecanim动画系统(Animator),素材设置,Avatar,Controller

292 1-2 Mecanim动画系统(Animator),使用其他模型的动作,创建动作

293 1-3 Mecanim动画系统(Animator),过渡线,过度条件,脚本控制,Has Exit Time播放完之后执行

294 1-4Mecanim动画系统(Animator),3个动作互相过渡,勾选Has Exit Time实现优先级

295 1-5 Mecanim动画系统(Animator),处理骨骼不匹配,调节肌肉

296 1-6 Mecanim动画系统(Animator),增加虚拟按键

297 1-7 Mecanim动画系统(Animator),增加walk动画

298 1-8 Mecanim动画系统(Animator),Blend Tree, 嵌套Blend Tree

299 1-9 Mecanim动画系统(Animator),2D Blend Tree

300 2-1 Mecanim动画系统(Animator),动画遮罩 Layer Mask

301 2-2 Mecanim动画系统(Animator),动画事件,Any State 动画(死亡,胜利等),销毁物体

302 2-3 Mecanim动画系统(Animator),override 继承,Hash值用于判断当前动画,

303 2-4 Hinge Joint,

304 2-5 Hinge Joint 应用

305 2-6 Fixed Joint

306 2-7 Spring Joint

307 2-8 布料效果,Max Distance , Surface Penetration

308 2-9 布料效果, 细节设置

309 2-10 播放视频 同时播放音频 bool控制播放

310 2-11 复习,介绍城市勇士

278 3-2 按钮托管 (委托) AddListener(new delegation(Functionxxx))

279 3-3 城市勇士,instantiate怪物并转为GameObject

280 4-1 城市勇士,AnimationEvent,脚本方式加动画事件

😀😀😀😀AnimatorClipInfo [[ clipInfo实例 =Animator实例.GetCurrentAnimatorClipInfo(0);

AnimatorClipInfo实例数组【0

】.clip.AddEvent(AnimationEvent实例

)

281 5-1 3DMax, 基础设置,界面熟悉,快捷键

282 5-3 3DMax, 加线

283 5-4 3DMax, 挤出,补面,缩放

284 5-5 3DMax, 制作曲面

285 5-6 3DMax, 调整轴向,旋转,FBX文件导出设置

286 5-7 3DMax, attach和group

287 5-8 3DMax, 复习

288 5-9 3DMax, 贴图,展/分UV

289 5-10 3DMax, 贴图,操作演示

290 5-11 3DMax, 贴图,缝合

311 1-1 3DMax,摆UV,Reset Xform

312 1-2 3DMax, 渲染出UV并导入PS,PS操作方法,快捷键

PS

ctrl+alt+z 连续撤销

ctrl+T 图片放大缩小, 按shift=等比例放大缩小,鼠标右键旋转,

Alt+滚轮 视图放大缩小

一直按住Alt 复制图层

ctrl+D 取消选择一个区域

313 1-3 3DMax,PS操作方法

314 1-4 3DMax,UV编辑器内旋转,调整图层优先级

315 1-5 3DMax,斧子案例,PS快速选择工具

316 1-6 3DMax,斧子案例

317 1-7 3DMax,斧子案例,复制对称部分

318 1-8 3DMax,图片格式改PNG,分离几何形体

319 1-9 3DMax,导出排错,回顾,行业建模流程

320 1-10 3DMax,创建骨骼,录动画

321 1-11 3DMax,录动画

322 1-12 3DMax,混合动画

323 2-1 3DMax,attach人物模型,蒙皮匹配骨骼,alt+X透明化模型

324 2-2 3DMax,蒙皮权重

325 2-3 3DMax,测试蒙皮权重,微调

326 2-4 3DMax,导出

327 2-5 Unity切割动画,Clips

328 2-6 3DMax,Unity3D 美术制作规范,显示单位米,系统单位厘米,Y轴朝上,质心为中心,地上质心为底面中心,主角900~1300三角面,贴图256*256,武器150面,187顶点,128*128。场景10000面,2张512*512。 单个模型不超过2万面。 reset XForm并Editable Poly即可导入Unity以1:1显示。

329 2-7 3DMax,材质贴图规范。只支持Standard 和 Multi/Sub-Object (且子材质为Standard),7分34-只支持Bitmap贴图类型,Diffuse Color 和 Self-Illumination(自发光,用来导出Lightmap)贴图通道, 不支持JPEG,DDS,GIF动图,模型贴图文件(长和宽不必相等)必须是2的n次方(n>0),最大2048*2048. UI贴图,精灵可以不遵循2的N次方。并线

330 2-8 Shader,法线贴图

331 2-9 Shader细节,更多Shader

332 2-10 脚本切换Shader

333 2-11 Shader CG编程介绍

334 3-1 Shader,结构介绍,Color,pass{},

335 3-2 Shader,SubShader{pass{Color[]material{diffuse[]ambient[]specular[]shininess[]}lighting on seperatespecular on}}

336 3-3 Shader,Texture, 表面着色器(比固定着色器复杂),CG代码块

337 3-4 Shader,CG语法

338 3-5 Shader,Shader官方API

339 3-6 Shader,BumpMap,借用官方手册的代码,

340 3-7 Shader,法线贴图逐个向量

341 3-8 NGUI,

342 3-9 NGUI,

343 3-10 NGUI,

344 3-11 NGUI,

345 3-12 NGUI,

346 3-13 NGUI,

347 1-1 NGUI,

348 1-2 NGUI,

349 1-3 NGUI,

350 1-4 NGUI,

351 1-5 NGUI,

352 1-6 NGUI,

353 1-7 NGUI,

354 1-8 NGUI,

355 2-1 NGUI,

356 2-2 NGUI,

357 2-3 NGUI,

358 2-4 NGUI,

359 2-5 NGUI,

360 2-6 NGUI,

361 2-7 NGUI,

362 2-8 NGUI,

363 3-1 NGUI,

364 3-2 NGUI,

365 3-3 NGUI,

366 3-4 NGUI,

367 3-5 NGUI,

368 3-6 Unity 2D

369 3-7 Unity 2D

370 3-8 Unity 2D

371 3-9 Unity 2D

372 4-1 Unity 2D, Aera Effector 2D, Buoyancy Effector 2D

373 4-2 Point Effector 2D, Platform Effector 2D

374 4-3 Unity 2D, 实战项目介绍

375 4-4 Unity 2D, 实战项目

376 4-5 Unity 2D, 实战项目

377 1-1 Unity 2D, 实战项目介绍

378 1-2 Unity 2D, 实战项目

379 1-3 Unity 2D, 实战项目

380 1-4 Unity 2D, 实战项目

381 1-5 Unity 2D, 实战项目,12分53 手机端输入,Input.GetTouch

382 1-6 Unity 2D, 实战项目,发布设置,手机调试

383 1-7 寻路配合手机射线

384 1-8 手机重力感应

385 1-9 景区全景球案例

386 2-1 重新加载场景,Time.timeScale

387 3-1 Time.time 和 static 变量不随重启场景而归零,2D射线

388 3-2 AR

389 3-3 AR API

390 3-4 WWW类在协程和安卓端应用,各种文件夹名的含义,复习

391 3-5 结课前的嘱咐


补充课程:

https://www.bilibili.com/video/BV1WL4y1F771?p=47&spm_id_from=pageDriver&vd_source=a7460ff78128fc885322186f16b9f3ba&t=199.9 (2018年第二个月,选择Lambda表达式+委托相关课程学习,因为第三个月需要用到)

2018第二个月

P46

2时46分, 位运算左移8 =(1<<8);

P47

1时55 委托的概念

2时14 委托的执行顺序

P48

33分 匿名函数

48分 lamda表达式

2时35分 自定义泛型

P49

params T[] 数目可变的参数的方法参数。 参数类型必须是一维数组。

声明:Public delegate bool Dele

+

方法括号内:Dele del

简化为:

方法括号内:Func del

24分 Action,不带返回值版本的Func

32分 多播委托,+=,-=

1时10分 ArrayHelper

泛型默认值=defalt(T);

P50

1时10分 接口和委托案例

2时14分 筛选案例

P51

2分 C#的扩展方法

C#的扩展方法

要求:1.扩展方法类必须是静态类2.在第一个参数上,使用this修饰被扩展的类型3.在另一个命名空间下(不在系统自带的命名空间)

语法:被扩展类型.方法名

25分 事件(只能在本类内部调用)

事件和委托的比较

事件的注册方法和委托相同

事件第一次注册也使用+=

类的外部,无法清空委托链或者直接引发

P52

6分45 事件的标准

1时8分 UGUI

补充课程到此结束,其他2018第二个月的内容基本已经在2017教过



以上为2017年第一个月和第二个月(每年共有4个月 的教程), 下面第三个月采用2018年的第三个月,祁天暄老师的课程。 共41集,每集时长2个半小时左右,1集相当于之前6集长度。

https://www.bilibili.com/video/BV1K7411Z77R (电脑版可以右键-视频音效调节-清澈人声)


只有电脑端的B站支持此功能, 移动端需要先访问电脑版的B站再设置(手机浏览器设置“访问电脑版”功能)

2018第三个月

P1:

3分-课程安排介绍,

18分-面向对象概念,

33分-类与对象,

1小时-面向对象思想,

2小时-ARPG Demo

分而治之,分装变化,高内聚,低耦合

类与类分工标准:是否可能发生 变化

P2:

23分创建文件,

32分修改unity脚本模版,

45分 写motor类,

54分写Controller类,

1时13分普通C#类,Parameter,知识点:[可序列化][System.Serializable],

1h48分 [Tooltip("提示")]

P3:

34分 [RequireComponent(typeof(CharacerMotor),typeof(PlayerStatus))]

38分 封装数据,设计思想

59分 访问修饰符

1时15 继承

1时22 老师,学生,人 继承案例

1时28 内存图

1时35 类型对象指针,同步块索引

🌝🌝New 子类,成员中也会有父类成员,但是不会new父类对象。 方法是所有类的实例共享的,不存在堆中。

父类引用指向子类对象,只能点出父类成员(受类型制约)。 将引用的数据类型向下转型as,可以访问子类型对象。

原理: 可以点出什么成员,取决于引用类型,实际有什么取决于堆中对象)

子类引用指向父类型对象=报错

2时5分 回家 ,火车 ,飞机,汽车 【抽象类和方法】案例

2时11 开闭原则

P4:

20分 使用抽象类的时机

抽象父类的属性成员可以给子类用

37分 薪资计算案例

1时27分 对象初始化器

1时40 展示父类引用传入子类对象,调用父类方法,实际调用子类重写后的方法

1时54分 新需求=改职位

把工资算法和职业类型全部拿出去, Employee里面只存Name和JobType,JobObject

2时42 组合复用原则

P5:

10分 新案例:各种狗(简单案例)

17分 继承的缺点

47分 方法在内存中的表现

1时20分 方法隐藏原理

1分45 接口

🌝🌝

接口: 不能存在字段,属性和方法子类必须实现。 1: 没有成员让子类用 2: 接口不唯一

P6:

1分 接口语法,接口与接口多继承

14分 接口显式实现

25分 手雷数组排序,IComparable

P7:

2分 制作排序器(排序类)ICompare

19分 冒泡排序 (这里可以跳到下方的“补充课程”,学一下Lambda表达式)

抽象类:一个概念的抽象

接口:一组行为的抽象

委托:一类行为的抽象

用继承: 一个类代表其他,复用为主

1时10分 foreach的原理- 获取IEnumerator

P8:

携程原理:

疑似,Unity以游戏物体为单位,每帧调用游戏物体的协同程序(禁用组件脚本不会停止已开始的协程)的MoveNext()方法,除非yield return还未能返回值则不调用MoveNext()

WaitForSecond原理: 疑似,在update中计时并检查,达到时间则返回值

33分 Unity内测试协程

40分 在Unity中不用StartCoroutine, 手动调yield自动生成的MoveNext()方法

58分55秒 可以被yield的对象,waitforsecond, waitforfixedupdate等

1时 30 案例:物体材质淡出

2时17 修改物体材质颜色必须创建新颜色

2时47 使用动画曲线修改颜色

Update适合做从头到尾一直做的,协程退出后不占用性能

P9:

4 分 一个协程yield return另一个协程, 效果为yield return内部的协程完全结束才继续本携程,但最外层调用的方法如果不是以yield return调用的,则不会排到后面

1时 协程嵌套实现寻路案例

1时25 Dao案例抽象工厂,接口用法

对于只用判断一次的参数(数据储存类型Server/Client)使用构造函数构造类的静态实例,构造函数中选择正确的子类

2时52 此框架优点:脚本不涉及数据储存方式,实现软件并行开发

P10:


史上最全Unity3D教程的评论 (共 条)

分享到微博请遵守国家法律