史上最全Unity3D教程

(含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: