- 畅销套餐
- 精选套餐
- 人气套餐
- 尊享套餐
- 高薪套餐
- 课程介绍
- 课程大纲
适合人群:
针对具备一定C#编程经验,或者需要查漏补缺、或者需要全面完善自己C#编程知识体系的学员。
你将会学到:
使得Unity初中级开发人员对于编程语言的学习更进一步;开发中大型项目,在编程语言方面进阶一个层次
- 本中级篇学习对于深入理解高级C#语言特性有莫大帮助,对于开发中大型项目有很大帮助。
课程简介:
Unity编程之C#编程“中级篇"(第3部)
整体介绍:
本中级篇面向的学员不再是完全的编程“小白”,而是具备一定C#编程经验,需要进一步查漏补缺、或者需要进一步多面完善自己C#编程知识体系的广大Unity学员。相信通过本中级篇的学习,可以使得Unity初中级开发人员对于编程语言的学习更进一步;对于开发中大型游戏项目,在编程语言这一层级进一步打下坚实的语言基础。
“中级篇”讲解特点:
本中级篇面向初中级游戏研发人员,以及Unity中级学习者。为了更加深入的刨析各个语法的本质,我们采用反编译解读IL中间语言的方式,来解构语法难点,使得学员短时间学习语法本质。
"中级篇”讲解内容:
"C#(for Unity)中级篇"在“C#入门”、“基础篇”的基础之上,从以下四个方面着重研究我们游戏开发(包含软件开发)过程中,C#非常重要与实用的技能模块,使得广大游戏研发人员,对于C#这门Unity脚本有进一步更加完善的认识。
一:.Net 框架讲解。
A) .Net 发展历史。
B) IL 中间语言。 CLR 公共语言运行时。
C) 多维数据(常用二维数组)与交错数组。
D) 可变参数 Params
E) 进一步解释“实参”,“形参”。
F) 类的实例化内存分配机制。
二:深入学习对象类型
A) 里氏替换原则(LSP)
B) 类的属性极其本质特性
C) IS ,AS 关键字
D) 深入学习字符串理论
1] 字符串的“驻留性” 原理。
2] 字符串==与Equals() 的本质区别
3] 更多字符串常用方法学习。
E) 枚举类型以及适用场合。
三:深入学习集合特性
A) 什么是索引器,以及索引器的适用范围。
B) 学习自定义集合类,以及深入了解Foreach 语句的原理。
C) 深入学习 ArrayList,了解内部存储机制以及原理。
D) 深入学习 HashTable,了解内部存储机制以及原理。
E) 为什么学习泛型集合?
F) 泛型集合与普通集合的性能测试对比实验。
G) 学习“泛型约束”,以及“泛型约束”的适用条件。
四:委托与事件
A) 什么是委托,先从讲故事学习起:“老板来啦”!
B) 反编译学习委托的本质。
C) 委托的四大开发步骤。
D) 什么是事件,以及委托与事件的区别。
E) 事件的常用使用方式。
C#中级篇配套学习资料
说明1: 本C# for Unity 使用Virtual Studio2012,进行开发与讲解。(学员使用更高版本,对学习没有任何影响)
说明2: 链接:https://pan.baidu.com/s/1dUXSaM 密码:84us
个人著作:
一:51CTO学堂推荐微职位公开课:
《2018微职位公开课_Unity研发工程师》
https://edu.51cto.com/course/14960.html
二:游戏开发热门专题(套餐)
A: 《Untiy快速入门与VRAR系列课程》
https://edu.51cto.com/topic/3540.html
B: 《Unity编程之C#编程零基础转身企业级系列视频课程套餐》
https://edu.51cto.com/topic/859.html
C: 《Unity3D实战技术第二版视频教程》
https://edu.51cto.com/topic/3541.html
D: 《MMOARPG地下守护神—单机版实战专题》
https://edu.51cto.com/topic/1218.html
E:《Untiy客户端框架设计专题》
https://edu.51cto.com/topic/1364.html
F:《Lua热更新零基础转身企业级资深开发全套课程》
https://edu.51cto.com/topic/2617.html
G:《Unity全栈开发零基础华丽转身企业级资深开发》
https://edu.51cto.com/topic/3542.html
三: 热更新系列(技术含量:进阶级):
A:《Lua热更新技术视频课程(中级篇)》
https://edu.51cto.com/course/13952.html
B:《热更新框架设计之Xlua基础视频课程》
https://edu.51cto.com/course/15552.html
C:《热更新框架设计之热更流程与热补丁视频课程》
https://edu.51cto.com/course/16100.html
D:《热更新框架设计之客户端热更框架(上)视频课程》
https://edu.51cto.com/course/17799.html
E:《热更新框架设计之客户端热更框架(中)视频课程》
https://edu.51cto.com/course/18322.html
F:《热更新框架设计之客户端热更框架(下)视频课程》
https://edu.51cto.com/course/18569.html
四:框架设计系列(技术含量:中级):
A:《游戏UI界面框架设计系列视频课程》
https://edu.51cto.com/course/8411.html
B:《Unity客户端框架设计PureMVC篇视频课程(上)》
https://edu.51cto.com/course/8642.html
C:《Unity客户端框架设计PureMVC篇视频课程(下)》
https://edu.51cto.com/course/8961.html
D:《AssetBundle框架设计_框架篇视频课程》
https://edu.51cto.com/course/11538.html
五:Unity脚本入门进阶(技术含量:初级)
A:《Unity编程之C#编程“入门篇”(第1部)》
https://edu.51cto.com/course/3718.html
B:《Unity编程之C#编程“基础篇”(第2部)》
https://edu.51cto.com/course/3862.html
C: 《Unity编程之C#编程“中级篇” (第3部)》
https://edu.51cto.com/course/6949.html
D:《Unity编程之C#编程“进阶篇”视频课程 (第4部)》
https://edu.51cto.com/course/7613.html
六:虚拟现实(VR)与增强现实(AR):(技术含量:初级)
A:《虚拟现实之汽车模拟仿真项目开发》
https://edu.51cto.com/course/20119.html
B:《AR增强现实_AR小精灵视频课程》
https://edu.51cto.com/course/7523.html
C: 《VR公开课-红透半边天的VR产业》
https://edu.51cto.com/course/6322.html
七:Unity基础课程系列(技术含量:初级):
A:《Unity快速入门系列视频课程(第1部)_台球游戏与FlappyBirds》
https://edu.51cto.com/course/6979.html
B:《Unity快速入门系列视频课程(第2部)-太空射击与移动端发布技术》
https://edu.51cto.com/course/6980.html
C:《Unity3D益智三消类:“快乐消消乐”(产品级)实战视频课程》
https://edu.51cto.com/course/4133.html
D:《Unity ECS(二) 小试牛刀》
https://edu.51cto.com/course/19016.html
八:Unity ARPG课程(技术含量:初中级):
A:《MMOARPG地下守护神_单机版实战视频课程(上部)》
https://edu.51cto.com/course/4943.html
B:《MMOARPG地下守护神_单机版实战视频课程(中部)》
https://edu.51cto.com/course/5265.html
C:《MMOARPG地下守护神_单机版实战视频课程(下部)》
https://edu.51cto.com/course/6119.html
课程大纲-Unity编程之C#编程“中级篇” (第3部)
第1章.Net框架讲解(2小时2分钟7节)
1-1
1_C#中级篇_整体课程介绍一:.Net 框架讲解。 A) .Net 发展历史。 B) IL 中间语言。 CLR 公共语言运行时。 C) 多维数据(常用二维数组)与交错数组。 D) 可变参数 Params E) 进一步解释“实参”,“形参”。 F) 类的实例化内存分配机制。二:深入学习对象类型 A) 里氏替换原则(LSP) B) 类的属性极其本质特性 C) IS ,AS 关键字 D) 深入学习字符串理论 1] 字符串的“驻留性” 原理。 2] 字符串==与Equals() 的本质区别 3] 更多字符串常用方法学习。 E) 枚举类型以及适用场合。三:深入学习集合特性四:委托与事件
[08:56]开始学习1-2
2_C#中级篇-.Net框架讲解_程序基本编译原理.本章节学习“.Net框架”、CLR、“编译与反编译原理”等,具体学习一下内容:1: CLR 公共语言运行时2: 讲解CLR 与C#程序的编译过程3: 解释 VS bin/Debug 目录4: 使用Dotfuscator /Reflector6 反编译查看5: 讲解数组与类实例化内存分配图。
「仅限付费用户」点击下载“Unity编程之C#中级篇(1)_Net框架讲解_ToALL.pdf”
[18:36]开始学习1-4
4_C#中级篇-.Net框架讲解_二维数组与交错数组本节学习:二维数组与交错数组。二维数组的定义方式:int[,] intArray = new int[2,3];交错数组的定义:int[][] intArray = new int[3][];
[17:01]开始学习1-5
5_C#中级篇-.Net框架讲解_可变数目参数Params本节学习可变参数关键字“Params”,基本规则如下:总结1: 一般来说,(方法的)参数个数都是固定的,.NET提供了非常灵活的机制来实现可变数目参数,这就是使用params修饰符。总结2: params 修饰的参数,必须位于方法列表中的最后一个。总结3: 可变数目参数的好处就是在某些情况下可以方便地对参数个数不确定情况的实现
[20:43]开始学习1-6
6_C#中级篇-.Net框架讲解_实参与形参以及运行基本原理本节学习“形参”与“实参”,基本规则如下:1: C# 中对于“值类型”,调用参数,“实参”传递的是本身的一个“复本”。 (值类型: 基本数据类型[int ,byte,short,long,char,],枚举,结构)2: 如果给基本数据类型的“实参”加ref关键字,则“实参”传递的不再是“复本”,而是自己的内存地址。(传引用)
[21:59]开始学习1-7
7_C#中级篇-.Net框架讲解_类实例化内存基本运行机制一: 类的内存分配机制 1: 首先分配内存空间。 2: 建立类的对象名称。 3: 运行构造函数。 4: =号右边在“堆”中,等号左边在“栈”中。 二:实例化一个对象时候,类成员变量为“值类型”时,是放在“堆”中(跟着对象),对象中的“方法表”,也是单独在“堆”中存放。但是“方法表”中的值类型是存放在“栈”中。类(基本)不占用内存,对象占用较多内存。三: 运行程序的过程一般如下: 首先加载“程序集”,然后加载程序集中所有的类, 最后,找到程序集中的Main 方法,开始运行。
[13:12]开始学习第2章深入学习对象特性(3小时51分钟12节)
2-1
8_深入学习对象特性_里氏替换原则定义; 原则上子类对象是可以赋给父类对象的,也可以说子类可以替换父类,并且出现在父类能够出现的任何地方.反过来,父类对象是不能替换子类的,这种特性称为里氏替换原则。LSP 基本原理 1:当存在继承关系时,声明是父类,则堆中对象保存的类型指针为父类,那么调用的时候,就会执行父类的成员。 2:当创建一个子类对象时,声明是父类对象,则只能调用父类方法。声明是子类对象,则先看子类中是否有该方法,没有则父类中寻找,有则调用。
「仅限付费用户」点击下载“Unity编程之C#中级篇(2)_深入学习对象特性_ToALL.pdf”
[21:06]开始学习2-2
9_深入学习对象特性_类的属性C#的属性: 目的就是设置访问与修改成员变量数值的规则。C#属性本质就是 Set_X() 与 Get_X() 方法的简化技术。C#属性的简化写法,就是Set与Get。
「仅限付费用户」点击下载“C#中级篇学习资料下载链接.pdf”
[20:03]开始学习2-3
10_深入学习对象特性_Is与As关键字as 关键字含义是"转换",但是一旦转换失败后(给null值),不会报错。is 关键字。两者区别: 1: typeA is typeB 仅判断(判断A是否为B类型,或者B类型的子类) 2: typeA as typeB 先判断,再转换。
[13:06]开始学习2-4
11_深入学习对象特性_结构体(A)C#结构体: 功能:允许用户自定义值类型。适用范围: 结构适合一些小型的数据结构,这些结构包含的数据以创建后不修改的数据为主。也适合数据打包,一次性定义多个变量。 备注: 1:如果你需要用面向对象的特性,必须用类。 2:成员变量很多的时候,必须用类。 注意事项: 结构体使用时,可以New ,也可以不New. 如果不New ,则使用前必须为结构体中所有的成员变量赋值!
[22:50]开始学习2-5
12_深入学习对象特性_结构体(B)C#结构体的限制很多。 除非字段声明为const 、static,否则无法初始化。 结构体没有默认的构造函数。 结构体可以声明带参数的构造函数。 结构不能继承。 结构体在赋值时候进行复制。 结构体实例化可以不使用New 运算符。 结构可以实现接口。C#结构体的限制: 值类型:bool、结构、枚举、均隐式继承System.ValueType。可以通过 Reflector 的IL 来查看其继承关系。 (例如 Unity 中的Vector3 就是结构体)
[12:46]开始学习2-7
14_深入学习对象特性_学习字符串_对象实例Equals判断判断 Equals() 与 == 的区别。 == 比较时 1] 如果比较的是值类型,则比较两个对象的值。 2] 如果比较的是引用类型,则比较两个对象的引用是否相同(堆地址是否相同)。 Equals 1] 此方法是Object 里面的一个虚方法,默认是用==进行比较。 2] 但是,大部分微软的类,及用户自定义的类,都重写了该虚方法。
「仅限付费用户」点击下载“14课_CSharp中级篇.zip”
[12:32]开始学习2-8
15_深入学习对象特性_学习字符串_复习常用方法C#的常用方法: IndexOf() : 查找制定字符的。 SubString(): 得到子字符串。 Split(): 截断字符串。(返回字符串数组) Format(): 格式化方法 Join(): (静态方法)连接字符串。 Format(): (静态方法)格式化字符串 Replace(): 替换方法。 Trim(); 剔除字符串两边的空格。
[23:11]开始学习2-9
16_深入学习对象特性_学习字符串_字符串连接方法“+”操作符重载。 字符串可以看成字符数组。 所有类型都可以调用ToString()方法,转换字符串类型。
[19:47]开始学习2-10
17_深入学习对象特性_学习字符串_字符串恒定性(A)C#字符串的“驻留性”(不变性、恒定性)。 可以编写代码,然后使用VS断点方式,在VS的“即时窗口”中,通过打入 *变量 (取得变量的地址)方式来研究发现。
[21:42]开始学习2-11
18_深入学习对象特性_学习字符串_字符串恒定性(B)总结:1:C#字符串虽然也是“引用传递”,但是比较的还是字符串本身的内容,而不是内存地址。2:如果比较内存地址,需要用字符串的静态方法“ReferenceEquals()”。3:C#字符串创建,CLR(公共语言运行时)会先检查是否有相同的字符串,如果有,会共享相同的内存地址。4:注意:如果代码里直接是两个字符串相加,则CLR编译时候,则直接将相加拼接后的值,作为变量的值。但是代码里如果是将两个字符串变量相加的话,那么CLR 会在编译时,调用字符串的Concat() 方法拼接字符串的值,最终返回一个新的字符串变量。
[20:59]开始学习2-12
19_深入学习对象特性_枚举类型C#枚举: 作用:为了更好的识别一个变量的具体含义,且固定变量的使用“范围”。C#枚举的一般规则: 1: 枚举本质也是一个“类”,继承了System.Enum。 2: 枚举项,本质就是这个特殊类的字段,类型就是值类型。 3: 枚举项,如果方便起“代号”,可以只给第1个起代号即可。系统可以自动自增。 4: 枚举与数字之间的相互转换。
[23:44]开始学习第3章深入学习集合特性(5小时31分钟22节)
3-1
20_C#中级篇_深入集合特性_什么是索引器一:什么是C#索引器: 如同使用与处理“数组”一样来处理对象二:C#“索引器”典型结构
「仅限付费用户」点击下载“Unity编程之C#中级篇(3)_深入学习集合特性_ToALL.pdf”
[14:02]开始学习
“刘国柱”老师的其他课程更多+