unity3d脚本(Unity入门 | C#脚本基础知识)
前言
Unity 3D 脚本用来界定用户在游戏中的行为,是游戏制作中不可或缺的一部分,它能实现各个文本的数据交互并监控游戏运行状态。Unity 3D 主要支持 3 种语言:C#、Unityscript(也就是 Javascript for Unity)以及 Boo。但是选择 Unityscript和Boo 作为开发语言的使用者非常少,而 Unity 公司还需要投入大量的资源来支持它,这显然非常浪费。所以在 Unity 5.0 后,Unity 公司放弃对 Boo 的技术支持。大多数开发人员更倾向于使用的编程语言是C#。C#被全球数百万开发人员用于应用程序,Web和游戏开发,并且有大量的信息和教程可以帮助你。
正文
本系列将系统的讲解C#编程,为学习C#打基础。
VS中文件的组成
Visual Studio是目前最流行的Windows平台应用程序的集成开发环境。一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台
.cs结尾的文件,都是类文件
.sln结尾是解决方案的文件
.csproj 项目文件,里面包含了这个项目的信息,可以双击运行
类文件中的组成
上图中的代码输出:Hello World!
Using:引用命名空间
Namespace:项目的命名空间
Class Program:类名
Main:Main函数是程序的主入口,程序的执行范围, 每个C#程序中必须有一个类带有Main函数。
类型类型是一种模板
C#程序就是一组类型声明,学习C#就是学习如何创建和使用类型。我们可以把类型想象成一个用来创建数据结构的模板。模板本身并不是数据结构,但它详细说明了由该模板构造的对象的特征。
类型由下面的元素定义:
名称
用于保存数据成员的数据结构
一些行为及约束条件
实例化类型
从某个类型模板创建实际的对象,称为实例化该类型。
通过实例化类型面创建的对象被称为类型的对象或类型的实例。
在C#程序中,每个数据项都是某种类型的实例。这些类型可以是语言自带的,可以是BCL或其他库提供的,也可以是程序员定义的。
预定义类型
C#提供了16种预定义类型,其中包括13种简单类型和3种非简单类型。所以预定义类型的名称都由全小写字母组成。
预定义的简单类型包括以下3种:
11种数值类型
不同长度的有符号和无符号整数类型:sbyte、byte、short、ushort、int、uint、long
浮点数类型float和double
高精度小数类型decimal,可以精确的表示分数,常用于货币计算
一种Unicode字符类型char
一种布尔类型bool,bool类型表示布尔值并且必须为true或false。
3种非简单类型:
string,它是一个Unicode字符数组;
object,所有其他类型的基类;
dynamic,使用动态语言编写的程序集时使用
用户定义类型
除了C#提供的16种预定义类型,还有6种类型可以由用户自己创建:
类类型(class)
结构类型(struct)
数组类型(array)
枚举类型(enum)
委托类型(delegate)
接口类型(interface)
栈和堆
程序运行时,它的数据必须存储在内存中。一个数据项需要多大的内存,存储在什么地方以及如何存储都依赖于它的类型。运行中的程序使用两个内存区域来存储数据:栈和堆。
栈
栈是一个内存数组,是一个先进后出的数据结构。
栈存储以下种类型的数据:
某些类型变量的值
程序当前的执行环境
传递给方法的参数
作为程序员,了解栈的基本功能可以更好的了解程序在运行时正在做什么,并能更好的学习C#。
栈的特征
数据只能从栈的顶端插入和删除
把数据放到栈顶称为入栈(push)
从栈顶删除数据称为出栈(pop)
入栈和出栈
堆
堆是一块内存区域,在堆里可以分配大块内存用于存储某类型的数据对象。与栈不同,堆里的内存能够以任意顺序存入或移除。
内存堆
值类型和引用类型
类型被分为两种:值类型和引用类型,这两种类型的对象在内存中的存储方式不同。
值类型只需要一段单独的内存,用于存储实际的数据
引用类型需要两段内存:第一段存储实际的数据,位于堆中;第二段是一个引用,指向数据在堆中的存放位置。
值类型的数据存放在栈里,引用类型的实际数据存放在堆而引用(指针)存放在栈里。
非数据成员的存储
值类型和引用类型的分类
变量是程序执行时存储在内存中的数据。
变量在使用前必须声明,变量声明定义了变量并完成两件事
给变量命名,并为它关联一种类型;
为它在内存中开辟了一块空间;
变量的声明
C#中的四种变量:
本地变量:在方法的作用域保存临时数据,不是类的成员
字段:保存和类型或类型实例相关的数据,是类的成员
参数:用于一个方法到另一个方法传递数据的临时变量,不是类的成员
数组元素:同类数据项构成的有序集合的一个成员,可以是本地变量,也可以是类型的成员。