CS1L19——for
CS1L19——for
for
第一个空(初始表达式):一般声明临时变量,用来记数用,可以连续声明
第二个空(条件表达式):表明进入循环的条件 一个bool类型的结果
第三个空(增量表达式):用第一个空中的变量进行自增减运算
1234for (/*初始表达式*/; /*条件表达式*/; /*增量表达式*/){ //循环代码逻辑;}
第一次进入循环时,才会调用第一个空的代码
每次循环之前都会判断第二个空中的条件 满足条件才会进入循环逻辑
1234567891011for (int i = 0; i < 10; i++){ Console.WriteLine(i); //执行完循环语句块的逻辑后 //最后执行第三个语句的代码}for(int i = 10;i >= 0; i--){ Console.WriteLine(i);}
第一个空(初始表达式):申明变量,可以连续声明变量
第二个空(条件表达式):进入循环的条件 只要是bool类型的结果的表达式都可以
第三个空(增量表达式):执 ...
CS1L18——do...while
CS1L18——do…while
do…while
while 循环 是先判断条件再执行
do...while 循环是先斩后奏,先至少执行一次循环语句块的逻辑 再判断是否继续
12345do{ do while循环语句块;}while (bool类型的值);
如果满足while语句条件,则回到do代码块开头
注意!do...while 语句存在一个重要的分号
if、switch、while、do...while 都可以相互嵌套
continue 和 break 也可以使用
12345678910111213141516171819202122do{ Console.WriteLine("do while 循环语句")} while (false);int a = 0;do { ++a;} while (a < 2);do{ ++a; if (a == 0) { }} while (fa ...
CS1L17——while
CS1L17——while
循环语句
让顺序执行的代码 可以不停的循环执行某一代码块的内容
条件分支语句 是让代码产生分支
循环语句 是让代码可以被重复运行
while
能使用 bool 类型的变量或表达式 条件运算符 逻辑运算符
12345678while (bool类型的值){ 当满足条件时就会执行while语句块的内容; ......; ......; 当代码逻辑执行完,回到while循环开头 再次进行条件判断,符合条件就继续循环}
不满足条件后,就会跳出循环
死循环,不停的执行其中的代码逻辑直到被强制关闭
死循环只有在我们学习控制台程序时才会频繁使用
可能会因为内存问题造成程序崩溃闪退
造成程序卡死
谨慎使用死循环
注意定义变量的位置!!!
被放入循环的变量很有可能会被初始化,注意变量在循环的位置
12345int a = 1;while (true){ Console.WriteLine("循环"+ a++ + "次");}
嵌套使用
while 不仅可以 ...
CS1——CSharp入门系列
CS1——CSharp入门系列
C#四部曲第一部分——系列代号CS1
本部分主要学习程序基础逻辑,类型,类型转换,运算符,条件分支,循环等内容
本系列学习内容
C#的基本结构
变量
变量的本质
常量
转义字符
类型转换
隐式转换
显式转换
异常捕获
运算符
算数运算符
字符串拼接
条件运算符
逻辑运算符
位运算符
三目运算符
条件分支语句
条件分支语句——if
条件分支语句——switch
循环语句
循环语句——while
循环语句——do…while
循环语句——for
额外知识点
控制台的其他方法
项目调试
随机数
UG3L1——六大基础组件
UG3L1——六大基础组件
如何在Unity中使用UGUI
直接在Hierarchy窗口中右键
选择UI
UI中所有内容都是UGUI相关控件
在编辑UI时,需要打开2D和Rect Tool选项
这样才能方便的编辑UI
六大基础组件
只要创建和UI相关的内容时,这六大组件就会自动创建
前四个依附在Canvas对象上
后两个依附在EventSystem对象上
六大基础组件概述
Canvas对象上依附的:
Canvas:画布组件,主要用于渲染UI控件
Canvas Scaler:画布分辨率自适应组件,主要用于分辨率自适应
Graphic Raycaster:射线事件交互组件,主要用于控制射线响应相关
Rect Transform:UI对象位置锚点控制组件,主要用于控制位置和对其方式
EventSystem对象上依附的:
Event System 和 Standalone Input Module: 玩家输入事件响应系统和独立输入模块组件,主要用于监听玩家操作
UD3L5——JsonUtility和LitJson对比
UD3L5——JsonUtility和LitJson对比
JsonUtlity和LitJson相同点
他们都是用于Json的序列化反序列化
Json文档编码格式必须是UTF-8
都是通过静态类进行方法调用
JsonUtlity和LitJson不同点
JsonUtlity是Unity自带,LitJson是第三方需要引用命名空间
JsonUtlity使用时自定义类需要加特性,LitJson不需要
JsonUtlity支持私有变量(加特性),LitJson不支持
JsonUtlity不支持字典,LitJson支持 (但是键只能是字符串)
JsonUtlity不能直接将数据反序列化为数据集合(数组字典),LitJson可以
JsonUtlity对自定义类不要求有无参构造,LitJson需要
JsonUtlity存储空对象时会存储默认值而不是null,LitJson会存null
如何选择两者
根据实际需求,建议使用LitJson
原因:LitJson不用加特性,支持字典,支持直接反序列化为数据集合,存储null更准确
UD3L4——LitJson
UD3L4——LitJson
LitJson
它是一个第三方库,用于处理Json的序列化和反序列化
LitJson是C#编写的,体积小、速度快、易于使用
它可以很容易的嵌入到我们的代码中
只需要将LitJson代码拷贝到工程中即可
本章代码关键字
1234using LitJson; //LitJson的命名空间JsonMapper.ToJson() //LitJson的序列化方法JsonMapper.ToObject<>() //LitJson的反序列化方法JsonData //LitJson不用泛型反序列化方法时返回的类型,可以用键值对来获取其中的数据
知识点
LitJson提供的序列化反序列化方法 JsonMapper.ToJson() 和 ToObject<>()
LitJson无需加特性
LitJson不支持私有变量
LitJson支持字典序列化反序列化
LitJson可以直接将数据反序列化为数据集合
LitJson反序列化时 自定义类型需要无参构造,尤其是重载了构造函数的 ...
UD3L3——JsonUtility
UD3L3——JsonUtility
JsonUtility
JsonUtlity是Unity自带的用于解析Json的公共类,它可以:
将内存中对象序列化为Json格式的字符串
将Json字符串反序列化为类对象
本章代码关键字
123456File.WriteAllText() //将字符串存储到指定路径中File.ReadAllText() //在指定路径文件中读取字符串[System.Serializable] //序列化特性[SerializeField] //序列化变量特性JsonUtility.ToJson() //使用JsonUtlity对类对象进行序列化为Json字符串JsonUtility.FromJson<>() //将Json字符串反序列化为一个类对象
知识点
必备知识点 —— File存读字符串的方法 ReadAllText() 和 WriteAllText()
JsonUtlity提供的序列化反序列化方法 ToJson() 和 FromJson()
自定 ...
UD3L2——Excel转Json
UD3L2——Excel转Json
Excel转Json的意义
使用Excel表用来配置数据是相当简单且强大的,但是它们并不适合用于传输数据和配置文件
而对于策划来说,编辑Json文件可能对于他们来说过于麻烦和困难
因此将Excel表格转成Json,在方便使用Excel配置数据的同时也能随时将数据转为Json配置文件被代码读取调用
Excel表转Json文件
可以通过网上的各种在线转Json网站进行转换
但我们也可以写一个脚本来实现这个
UD3L1——Json基本语法和配置规则
UD3L1——Json基本语法和配置规则
Json基本语法规则
注释
Json规范里明确不支持注释,但是VSCode可以使用JSON with Comments,这样就可以加注释了,注释方法和C#一致
右下角选择语言模式
选择JSON with Comments,这是VSCode指定的一个特殊的 JSON 文件类型,这种类型的JSON支持注释
Json格式是是一种键值对结构
语法规则 —— 对象用大括号,数组用中括号,键值对用冒号,数据分割用逗号
符号含义
大括号 {} —— 对象
中括号 [] —— 数组
冒号 : —— 键值对对应关系
逗号 , —— 数据分割
双引号 "" —— 键名/字符串
键值对表示
"键名": 值内容
值类型
数字(整数与浮点数)
字符串
true 或 false
数组
对象
null
Json数据和C#类对象的对应关系
配置Json文档时的注意事项
如果数据表示对象那么最外层有大括号,如果数据是数组那么最外层为中括号
一定是键值 ...