Unity基础学习之Unity引擎学习
Posted qingtian_111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity基础学习之Unity引擎学习相关的知识,希望对你有一定的参考价值。
Unity引擎基础
1. Unity简介
- 简单介绍:
- Unity提供Manual(引擎说明书)和Scripting API(代码,类和方法可以在这里查)两个文档,开发人员可以阅读这两个文档来了解Unity开发
2. 游戏组成
- 一个游戏由多个场景构成,场景又分为2D界面和3D场景
- 在Unity中,界面和场景都称为场景,场景和场景之间可以相互切换
- 场景中包含很多个游戏对象,游戏对象有:
- 2D图片与文字
- 3D模型(包含动画)与特效
- 游戏对象具有的特性:
- 所有游戏对象都是一样的(游戏对象就是一个外壳)
- 游戏对象上挂载的组件不同,挂载的组件属性不同,导致游戏对象的功能不同(功能由组件完成)
- 游戏对象包含各种组件,下面罗列几种组件:
- 灯光组件(发光)
- 声音组件(背景音乐)
- 视频组件
- 图片组件(显示图片)
- 模型显示组件(渲染组件)
- 特效组件
- 导航组件
- 物理组件
- UI组件
- 脚本组件(自己写的功能)
- 组件就是一个对象,对象中包含各种属性
- 组件名——类名
- 一个类包含成员字段、成员属性、成员方法
- 一个游戏总共分成四个部分,总结如下:
- 一个游戏由多个场景组成,场景有2D场景和3D场景之分
- 一个场景由对个游戏对象组成
- 一个游戏对象由多个组件组成
- 一个组件由多个属性组成
3. Unity面板介绍
- Layout:窗口布局样式
- 带Unity图标的表示场景
3.1 Hierarchy(层级面板)
- 功能:
- 显示当前场景中的所有游戏对象的名字
- 描述游戏对象与游戏对象之间的层级关系(父子级关系)
- 可以拖动游戏对象以形成层级
3.2 Scene(场景面板)
- 功能:
- 显示当前场景中的所有游戏对象的模型/图标
- 提供场景和游戏对象的基本操作
- 在面板右上角存在坐标系,可以调整场景视角
- 场景操作:
- Q键:场景移动
- Alt+鼠标左键:旋转场景视角,围绕场景中心点旋转视角
- 鼠标右键:旋转场景视角,围绕当前观察者(鼠标位置)旋转视角
- 鼠标滚轮:拉近拉远场景
- F键:聚焦对象
- 鼠标右键+WASD:场景漫游
- Shift+Ctrl+F:游戏界面同步场景界面(用在摄像机上)
- 在场景中选择好合适的视角
- 选中摄像机对象
- 同步视角,按下快捷键或者GameObject菜单栏下的Align With View
- 游戏对象操作:
- W键:对象移动
- E键:对象旋转
- R键:对象缩放
- 摄像机具有两个模式:透视模式(Perspective)和正交模式(Orthographic,一般2D会用到)
- 搭建场景的时候,为了模型放置精准,可以按下面的顺序进行操作模型:
- 模型先通过QWER设置好一个大概的位置旋转缩放
- 通过模型在Inspector上的Transform组件里的position、rotation、scale去做微调,最好保持数值是一个整数或保留一位到两位小数
- 放置模型,还可以采用位置贴边方式:
- 调节物体位置时,可以按住V键,让当前模型的某个顶点与另一个模型的某个顶点重合,实现贴边
- 原理:
- 一个物体存在多个顶点,每三个顶点可构成一个三角形,多个三角形形成一个模型
- V键可以让坐标系移动到模型顶点位置
- 两个模型之间顶点和顶点重合,可以产生贴边效果
- 当要创建一个复杂物体时,可以按照下面的步骤来创建:
- 先创建一个空对象,作为父物体,创建好后,先Reset重置空对象Transform组件中的属性
- 再去创建物体需要的源部件,作为子物体
3.3 Game(游戏面板)
- 功能:
- 显示玩家所看到的画面
- 开发中需要重点关注的视角
- 调试和测试都需要看这个面板上的信息
- 通过调整摄像机来调整完整能看到的视角
- 手机游戏/电脑游戏中,玩家所能看到的画面会显示在屏幕(2D)上
- VR(眼镜曲面屏)/AR中,主要是通过光学原理,让玩家产生视角错觉,在屏幕上所能看到的2D画面转变成3D画面
- 在这个面板上,存在一个尺寸调整条,可以放大缩小所看到的画面
- 游戏运行的状态信息(运行时占CPU大小,占多少内存,当前帧速率是多少等)可以在面板的右上角Stats中查看,用于后期的游戏调试
3.4 Inspector(监视器面板)
- 功能:
- 主要用来监视游戏对象
- 重点监视游戏对象上挂载的组件,可以在这个面板添加新组件
- 监视游戏对象的基本信息(对象名字、是否静态、有哪些标签、属于哪一层级、激活状态)
- 监视文件信息(材质文件等)
- 监视工程设置
- 主要用来监视游戏对象
3.5 Project(工程面板)
- 功能:
- 显示当前工程的所有资源文件
- 根目录是Assets
- 一个工程下有5个基础文件夹:
- Assets:放置资源文件
- Library:放置库文件(自动生成)
- ProjectSettings:放置工程设置文件
- Temp:放置临时文件
- Package(UnityPackageManager):Unity包管理器
3.6 Console(控制台面板)
- 功能:(显示控制台信息)
- 显示日志信息
- 显示警告信息
- 显示报错信息
4. 地形系统(Terrain)
- Unity提供的一个地形组件
- 一个游戏场景空间,采用地形+模型的方式搭建
- 创建地形系统:
- GameObject——>3DObject——>Terrain
- 创建完成后,在Hierarchy面板中出现相应游戏对象,Project面板中出现地形系统文件(存储地形信息)
- 初始坐标中心位于左下角(x轴表左右,y轴表上下,z轴表前后)
- 编辑地形
- 抬高/降低地形平面(可选择不同笔刷形成不同地形样式)
- Brush Size:笔刷大小
- Opacity:笔刷硬度,值大小表示抬高/降低地形速度
- 平滑地形
- 凹陷地形(可制作平台)
- 在Unity2020版本中,选择设置高度后,Space处要选择Local才可以在一定高度地形上设置平台
- 在Unity2020版本中,选择设置高度后,Space处要选择Local才可以在一定高度地形上设置平台
- 整体设置中可以调整地形大小、高度等
- 高度限制抬高地形最高点
- 按住shift键,做相反操作
- 搭建地形时,要注意,第一个物体的坐标尤为关键,关系到地形上放置模型的坐标值计算是否方便
- 能放在原点,尽量放在原点位置
- 不能放在原点,尽量保持坐标是一个整数,或保留一位小数
- 抬高/降低地形平面(可选择不同笔刷形成不同地形样式)
5. 一些3D模型中会用到的基础理论
5.1 物体中心的概念
- Pivot(模型设计师设计的)
- 单个物体:显示物体出产中心
- 多个物体:显示当前这个物体的中心
- Center(对象边界框的中心点)
- Unity物理计算中心
- 通过快捷键Z切换两个中心点
- 物体中心点的选择不同会影响到旋转效果不同
5.2 坐标系(笛卡尔坐标系)的概念
- 2D笛卡尔(XY轴可以定一个平面上物体位置)
- 3D笛卡尔
- 左手坐标系——计算机、Unity中使用
- 掌心向外, 大拇指与食指成90度
- X轴向右,Y轴向上,Z轴向前
- 右手坐标系——一般在数学中使用
- 掌心向内, 大拇指与食指成90度
- Z轴与左手坐标系相反,指向“自己”
- 左手坐标系——计算机、Unity中使用
- Unity坐标系
- 世界坐标方位
- 世界的东南西北
- 永远不会改变
- 本地坐标方位
- 物体的前后左右
- 会随时发生改变,例如,旋转物体时,物体的本地坐标也会跟着旋转
- 用快捷键X切换两个坐标,即切换方位(世界方位/自身方位)
- 世界坐标方位
5.3 向量和标量的概念
- 标量:有大小无方向
- 向量:有大小有方向(Unity中常用)
- 计算两点之间形成的向量:终点坐标-起点坐标
- 向量加法:首尾相连,一个向量起点指向另一个向量终点
- 向量减法:起点相连,减数终点指向被减数终点(被减数-减数=差)
- 向量点积:
- 结果是一个标量
- 根据点乘结果来判断两个游戏对象之间的方位关系
- 通常用于判断敌人在前还是在后
- 结果是一个标量
- 向量叉乘 :(利用UnityAPI中的Cross函数即可得到计算结果)
- 结果是一个向量(法向量,垂直于两个向量平面),左手坐标系计算
- 法向量指向上方,表示b向量指向a向量右边;指向下方,则相反
- 通常用于判断敌人在左还是在右
- 结果是一个向量(法向量,垂直于两个向量平面),左手坐标系计算
- 计算两点之间形成的向量:终点坐标-起点坐标
5.4 旋转的概念
- 欧拉角(EularAngle):——结构体
- 物体绕XYZ轴(世界的)旋转的角度
- 优点:好理解,好操作
- 缺点:容易出现多个欧拉角的值表示一个旋转
- 四元数:(用得较多,较精准)——类
- 由XYZW四个值组成,由一堆算法算出来
- 优点:避免万向锁(同一个旋转角度,欧拉角描述会有不同的值出现)问题
- 缺点:不好理解,不好操作
5.5 网格的概念(模型形状)
- 用一堆三角形组成
- 模型分为粗模(低模)和细模(高模)两种
- 模型纹理:网格贴图(将2D贴图上的像素点对应到3D模型中粘贴)
- 会用到组件有Mesh Filter(网格选择器)和Mesh Renderer(网格渲染器)
5.6 材质的概念
- 用于渲染网格的文件
- 用Shader(着色器)来编程实现(渲染方案)
- 控制材质球如何渲染的脚本
- 使用CG语言
- 可以编辑特效等
- 需要物理中的光学知识和线性代数中的矩阵知识
- 帧速率(FPS)的概念
- 每秒刷新多少次数
- 作用:
- FPS越高,播放越流畅,性能消耗越大
- FPS越低,播放越不流畅,性能消耗越小
- 人眼分别的帧数是每秒24帧
- 通过Game面板中的Stats来了解游戏的帧速率
Unity基础学习之C#学习
C#基础语法部分
1. 开发环境搭建
1.1 Visual Studio
- 下载路径
- 可下载2016版本以上的
1.2 Unity
1.3 MSDN
- MSDN工具站网址
- msdn library技术文档路径
- 这是一个Microsoft当前提供的有关编程信息的最全面的资源网站
2. 进制
在进制中,比较重要的两个是二进制和十进制,二进制是机器理解的数据,十进制是人常用理解的数据。
2.1 进制概念
- 进制概念:人为定义带进位计数方法
- 二进制:逢二进一,0和1
- 十进制:逢十进一,0~9
- 八进制:逢八进一,0~7
- 十六进制:逢十六进一,0-9和A-F
- 计算机为什么能理解二进制:数据以电信号传输(高电频和低电频)
- 计算机如何理解数字和文字:数字转换成二进制,文字用编码转换再转换成二进制
2.2 进制转换
- 二进制转十进制
1字节=8比特,因此二进制写法以八位起步,即1字节可以存储255(1111 1111)大小的数 - 八进制转十进制
- 十六进制转十进制
A8B6 = 6 ∗ 1 6 0 + 11 ∗ 1 6 1 + 8 ∗ 1 6 2 + 10 ∗ 1 6 3 6*16^0+11*16^1+8*16^2+10*16^3 6∗160+11∗161+8∗162+10∗163 - X进制转十进制
- 十进制转二进制
- 八进制转二进制
- 十六进制转二进制
3. 原码、反码、补码
- 原码、反码和补码都是针对二进制计算的。
- 1字节中的8位并不一定都是用来存储数据的,还会用来存储符号,比如正负数
3.1 正负数三码的计算方式
- 在有符号数据中,0的二进制表示有两个,即+0(0 000 0000)和-0(1 000 0000)。
- -0转换成补码后会变成0000 0000,这是因为在反码+1后,补码长度变成了9位,而存储空间只有8位,舍去了最高位。
3.2 使用三码的原因
- 计算机底层只能做加法运算,减法运算是通过将第二个数转换成负数后再进行加法运算来实现的
- 使用三码主要是为了精确计算机底层进行加法运算后得出的结果
- 用原码来进行含有负数的加法运算,会导致得出的结果偏差很大
4. C#开发语言介绍
- 计算机只能读取二进制,因此创造除了编程语言,用编程语言实现程序后,将代码编译成二进制,方便计算机读取
- C#开发语言特点:面向对象,简单
- 继承C和C++强大功能,去除C和C++的复杂特性(C面向过程,指针复杂;C++中有很多手动操作,例如手动操作内存等)
- 使用任何一门编程语言,都需要基于框架
- C#语言使用.NET Framework和.NET Core开源框架
- 写代码要注意代码阅读性和维护性
4.1 用VS创建一个项目
- 创建项目过程如下:
- 如何在解决方案中新建项目:
- 一个解决方案中可创建多个项目,但只可以运行一个项目
- 可运行的项目会被标粗
- 切换运行项目:设置需要运行的项目为启动项目
- 设置启动项目操作:右键项目–>设置为启动项目
- 如何在项目中创建.cs文件:
- 右键项目–>添加–>新文件–>找类文件
4.2 第一个C#文件
- 写C#程序:
using System; //引用了一个命名空间(又叫库)
namespace aCSharpBase //声明命名空间
class MainClass //声明一个类
//Main函数是程序的入口
public static void Main(string[] args)
//在控制台上打印一句话
Console.WriteLine("Hello World!");
- 编译当前程序:
- C#程序程序员可以看懂,但机器不能看懂;然而执行程序的是机器
- 将C#程序编译(翻译)成机器可以看懂的语言,即二进制后,程序可以被执行
- 运行当前程序 :
- 获取执行结果
4.3 注释
- 注释不会被编译,也不会被执行
- 注释作用:
- 解释说明当前代码含义(在开发程序时,每段代码都要写注释)
- 暂时取消某些代码的执行
- 多行注释放于文件前部,说明文件创建人以及修改人等信息,起到软件开发认责作用
- Windows下VS的注释快捷键:
- 注释:Ctrl+K+C
- 取消注释:Ctrl+K+U
- 对于区域性划分注释,可以使用标签
region
- 快捷键:输入#re后,按两下tab键
5. 数据类型
- 机器含有的东西:CPU、内存条、硬盘、显存/显卡…
- 程序执行前,先将已知的数据存储到机器中(硬盘、内存、CPU缓存)
- 数据类型:存储不同类型数据的容器
- 开辟数据存储内存(根据设置的数据类型),用完数据后,返还内存
- 值类型和引用类型的区别在于:
- 进行数据存储时,值类型变量直接保存变量的值
- 引用类型的变量保存的是数据的引用类型,引用类型的变量也叫对象
- 进行数据操作时,对于值类型,由于每个变量有自己的值,因此对一个变量的操作不会影响其他变量
- 对于引用类型的变量,对一个变量的数据进行操作就是对这个变量在堆中的数据进行操作,因此对一个变量的操作就会影响到引用同一个对象的另一个变量
- 判断数据类型是值类型还是引用类型方法:
- 用两个变量进行数据操作,一个变量进行赋初值,另一个变量赋前一个变量
- 改变其中一个变量值,查看另一个变量值是否被影响而产生变化
- 另一个变量不变化,说明数据类型是值类型
- 另一个变量值和改变的变量值仍然保持一致,说明数据类型是引用类型
- 数据的量级:
- 1024字节(byte) = 1KB
- 1024KB = 1MB
- 1024MB = 1GB
- 1024GB = 1TB
- 1024TB = 1PB
5.1 值类型
- 值类型源于System.ValueType家族
- 每个值类型的对象都有一个独立的内存区域用于保存自己的值
- 值类型数据所在的内存区域称为栈
- 值类型主要包括整型、浮点型、字符型、布尔型、枚举型等
- 对值类型,不同的变量会分配不同的存储空间,并且存储空间中存储的是该变量的值
5.1.1 基本数据类型
- 下面两张表罗列了13个基础数据类型:
- 不同数据类型可以存储的数据大小不一样,在选择数据类型时,要注意其取值范围,选择最适宜的数据类型
- short是Int16结构的别称,int是Int32结构的别称,long是Int64结构的别称
5.1.2 枚举类型(自定义数据类型)
- 枚举类型的定义:
- 不可在方法内定义枚举类型
- 枚举类型的使用:
- 自定义一个枚举类,相当于自己创建一个数据类型
- 与声明基本数据类型的变量一样,声明枚举类型变量
- 可以为枚举类型变量赋自定义中的枚举值
- 使用枚举类型,可以加强代码的可读性以及维护性
- 想要列举的值,都可以直接添加到定义好的枚举类型中
- 在Unity中使用枚举类型,可以产生下拉菜单
- 枚举类型可以强制转换成整型;0可以隐式转换成枚举类型,其余整型要强制转换成枚举类型
- 可以对枚举类型变量进行加减运算
5.1.3 结构类型(自定义数据类型)
- 结构体类型的定义如下:
- 不可在方法内定义结构体类型
- 结构体类型的使用:
- 对于给结构体中变量进行初始化,可以使用构造函数实现:
- 在结构体的构造函数中,空构造函数是冗余的,要自定义构造函数,函数必须含参
- 构造函数创建好后,在给结构体变量开辟内存空间时,就可以利用构造函数进行变量初始化
- eg:Student xiaoming = new Student(“”,“”,…);
5.2 引用类型
- 引用类型源于System.Object家族
- 引用类型数据所在的内存区域称为堆
- 在C#中引用类型主要包括数组、类、接口、委托、字符串等
- 对引用类型,赋值是把原对象的引用传递给另一个引用
- 对数组而言,当数组引用赋值给另一个数组引用后,这两个引用指向同一个数组,也就是指向同一块存储空间
5.3 指针类型(仅用于非安全代码)
- 指针类型变量存储另一种类型的内存地址
- 声明指针类型的语法如下:
- type * identifier;
- eg:char* cptr;
6. 常量和变量
- 对于浮点型数据,无论常量还是变量都要注意,数字是小数时:
- float类型的数据后面要加f
- eg:float money = 100.35f;
- double类型的数据后面要加d,可以不加(因为一般小数默认为double类型)
- eg:double damage = 1.223d;
- decimal类型的数据后面要加m
- eg:decimal number = 1.3m;
- float类型的数据后面要加f
- 浮点型数字是整数,数字后可以不加后缀
- eg:float score = 90;
- 对于字符类型,赋值,一定要用单引号括起来
- eg:char sex = ‘M’;
6.1 常量
- 什么是常量:
- 常量声明:
- const 数据类型 变量名 = 初值;
- 必须要赋初值,后面不可再修改
6.2 变量
- 什么是变量:
- 变量定义(声明):
- 变量可以不赋初值,但在特殊情况下必须要赋初值
- 不赋初值,则当前变量的值是默认值
- int/float默认值是0
- char默认值是’\\0’(表示空字符)
- 变量可以不赋初值,但在特殊情况下必须要赋初值
- 有两个变量相加,先对分配好的变量内存空间进行命名(声明变量),根据变量名来获取存储的数据,最后进行变量运算
6.3 常量与变量之间的区别
- 程序运行期间表示的是:
- 程序开始到程序结束
- 常量和变量之间的区别:
- 在程序运行期间,能否被改变
- 常量只有在写定义的时候,可以改变值,后续不可再被赋值
- 变量在定义时可以给初值,后续仍然可以被赋值
6.4 常量及变量命名规则和规范
- 命名规则如下图所示前三条:(其中,要注意的是,中文变量名语法上是可行的,但不推荐使用)
- 命名规范
- 命名用英文单词,不要使用拼音
- 驼峰命名法
- 大驼峰:每个单词首字母大写,其余字母小写
- eg:MyHeroDamage,HeroAttack
- 方法名、类名、接口名要使用大驼峰
- 小驼峰:第一个单词首字母不大写,后面每个单词首字母大写,其余字母小写
- eg:myHeroDamage,heroAttack
- 变量用小驼峰
- 大驼峰:每个单词首字母大写,其余字母小写
- 见名知意:看到变量名,能够知道它是用来存储什么东西的
7. 运算符、表达式及语句
7.1 运算符
- 数据存储完成后,要对数据进行处理,这就要用到运算符了
- 注意:
- 赋值运算符是一个等号,表示的是一个运算
- 算术运算符中,+、-、*、/、%是二元运算符;++、- -是一元运算符
- 自增、自减符号位置不同,会产生不同结果
- age++:整体结果保持原值,age变量结果增1;先赋值后自增
- ++age:整体结果增1,age变量结果增1;先自增后赋值
- 逻辑运算是两个bool型数据之间的运算
- &(与运算):一假则假
- |(或运算):一真则真
- !(非运算):相反
- &运算和&&短路与运算之间的区别:
- &运算——无论第一个条件是真是假,都会继续判断第二个条件
- &&短路与运算——若判断第一个条件已经是假,则不会继续判断第二个条件
- |运算和||短路与运算之间的区别:
- |运算——无论第一个条件是真是假,都会继续判断第二个条件
- ||短路与运算——若判断第一个条件已经是真,则不会继续判断第二个条件
- 短路&&和短路||:
- 优点:
- 第一个条件已经得知整个逻辑运算的结果后(&&的第一个条件为假/||的第一个条件为真),不会去判断第二个条件
- 节约运算量
- 缺点:
- 当判断中带有运算时,若不进行第二个条件判断,则第二个条件中的运算不会被执行
- 优点:
- 条件运算符是一个三目运算符
- 在进行两个数值运算过程中,若想要保留小数位数,有两种方法:
- ToString(“0.根据要保留的小数位数写0”),这种方法最后得到的是字符串结果
- eg:保留两位——ToString(“0.00”)
- Math.Round(数字,保留几位),这是一种数学计算公式
- eg:保留两位——Math.Round(数字,2)
- ToString(“0.根据要保留的小数位数写0”),这种方法最后得到的是字符串结果
7.2 表达式
- 表达式可以不以分号为结尾,其组成部分是常变量与运算符
7.3 语句
- 一个分号隔开一个语句
8. 输入与输出
- 用户与程序之间的交互,主要通过输入实现
- 用户输入数据,经过程序对数据的处理后,返回一个输出给用户
- 输入需要用到设备,一般的输入设备是鼠标与键盘,当然还有手柄、触屏(虚拟摇杆)等输入设备
- 下面介绍C#中的输出函数与输入函数:
9. 数据类型转换
- 数据类型之间的转换,根据不同情况,分为隐式转换和强制转换
- 当小容器中的数据要存储到大容器中,则系统自动采用隐式转换
- 当大容器中的数据要存储到小容器中,则在程序编写时要加修饰(强制转换修饰符)来达成强制转换
9.1 隐式转换
- 数据类型之间由小到大排序
- b o o l < c h a r < i n t < f l o a t < s t r i n g bool<char<int<float<string bool<char<int<float<string
- 所有整型之间的排序: s b y t e ( 1 字 节 ) < s h o r t ( 2 字 节 ) < i n t ( 4 字 节 ) < l o n g ( 8 字 节 ) sbyte(1字节)<short(2字节)<int(4字节)<long(8字节) sbyte(1字节)<short(2字节)<int(4字节)<long(8字节)
- 隐式转换只发生在将占用字节小的、取值范围小的、精度小的,转换成占用字节大的、取值范围大的、精度高的
- 系统自动转换
- 不需要其它修饰
- 赋值运算符左侧为占用字节大的、取值范围大的、精度高的,右侧为占用字节小的、取值范围小的、精度低的
- eg:float score = 32; ——>int型转换成float型
- 字符型数据会自动根据编码表,转换成整型数据
- eg:输入字符’a’,得到结果97
9.2 强制(显式)转换
- 强制转换发生在将占用字节大的、取值范围大的、精度高的,转换成占用字节小的、取值范围小的、精度小的
- 需要强制转换修饰符
- 会有精度缺失,甚至会出现数据错误(这是因为数据在计算机底层是以二进制形式存储,存储空间变小会舍去超出存储空间部分的高位数据,最终导致数据错误)
- 一般在两个不同类型的数值之间使用强制转换时要注意,需要转换的数值是处于小的数据类型取值范围内
- 浮点型数据强制转换成整型数据,会导致小数点后面的内容被舍去
- 数值转换成其他数据类型
- 对于字符,在存储时,一般会先将字符用编码表转换成数值后,以二进制数据进行存储
- int型数据转换成char型数据——根据编码表得到字符
- eg:int data = 97;
char change = (char) data;
- eg:int data = 97;
- int型数据无法转换成bool型数据
- 字符串(string)与其他类型之间的转换
- 其他类型转换成字符串:
- 其他类型数据加上双引号后,就变成了字符串数据类型
- eg:“false”,“10”,“3.14”,“A”
- 其他类型的变量.ToString()
- eg:int data = 97;
string str_data = data.ToString();
- eg:int data = 97;
- 其他类型数据加上双引号后,就变成了字符串数据类型
- 字符串转换成其他类型:
- 转换方法:
- 使用System.Convert类下相对应的方法,即:
- System.Convert.ToBoolean()
- System.Convert.ToInt32()
- System.Convert.ToSingle()
- System.Convert.ToDouble()
- System.Convert.ToChar()
- System.Convert.ToBoolean()
- 使用数据类型.Parse()方法,即:
- bool.Parse()
- int.Parse()
- float.Parse()
- double.Parse()
- char.Parse()
- 使用System.Convert类下相对应的方法,即:
- 字符串转换成bool型
- eg:string str = “false”;
bool bl = Convert.ToBoolean(str); - eg:bool bl2 = bool.Parse(str);
- eg:string str = “false”;
- 字符串转换成int型
- eg:string str = “312”;
int it = Convert.ToInt32(str); - eg:int it2 = int.Parse(str);
- eg:string str = “312”;
- 字符串转换成float型
- eg:string str = “3.1415”;
float fl = Convert.ToSingle(str); - eg:float fl2 = float.Parse(str);
- eg:string str = “3.1415”;
- 字符串转换成double型
- eg:string str = “3.1456415”;
double dl = Convert.ToDouble(str); - eg:double dl2 = double.Parse(str);
- eg:string str = “3.1456415”;
- 转换方法:
- 其他类型转换成字符串:
10. 访问修饰符
- 什么是访问修饰符(用于限制程序员):
- 代码位置层级划分:
- 常用修饰符:
11. 总结
- 数据类型:选择存储容器,不同类型可以存储的数据大小不一样
- 常量与变量:数据存储区域命名后,可根据名称来获取存储的数据
- 运算符:数据处理需要用到的符号
- 表达式:相当于一个计算公式,由常变量和运算符组成
- 语句:一个程序由多条语句构成,是计算机执行的最小单位;一个表达式加一个分号就可以形成一条语句
- 输入与输出:主要针对的是用户与机器的交互
- 数据类型转换:在处理数据过程中,会遇到数据类型不匹配情况,通过转换,可以使得等式两侧数据类型一致
- 在写代码的时候,一个方法内容有很多,为了能更好的阅读代码,可以用标签
#region [段名]...#endregion
来划分代码区域 - 设定访问修饰符,可以提高代码的安全性,写一段代码,一定要设置好其访问修饰符
以上是关于Unity基础学习之Unity引擎学习的主要内容,如果未能解决你的问题,请参考以下文章