参考书籍:
《Unity3D/2D手机游戏开发》
一、C#简介
在Unity编程中,使用C#作为脚本语言是大多数人的选择,C#是一门面向对象语言,具有类似Java的垃圾回收机制
Unity中使用的C#和.NET平台下的C#很像却不完全一样,Unity内的C#运行于Mono虚拟机里,是一个开源的软件
平台,以.NET开发框架为基础,在U3D中使用C#不仅能调用引擎本身的功能,还能调用.NET提供的大部分功能。
二、C#基本语法
1.类型
C#是一种强类型语言,必须声明对象的类型,对象类型对应的就是所占内存的大小
C#类型分为两大类:值类型和引用类型。
两者的主要区别是在内存中的存储方式不同,值类型通常是在栈上静态分配的,引用类型在进程堆中动态分配
*值类型包括内置类型(用关键字int、char等声明),结构(关键字struct声明)和枚举(关键字enum声明)
*引用类型包括类(用关键字class声明)和委托(用关键字delegate声明)
1.1内置类型
所有的值类型隐形派生System.ValueType,其中内置类型是最基本的类型。
[类型/大小or字节/.NET类型/说明]
byte 1 Byte 无符号,值 0~255
char 2 Char Unicode字符
bool 1 Boolean true或者false
sbyte 1 SByte 有符号,值-128~127
short 2 Int16 无符号,值-32768~32767
ushort 2 UInt16 无符号,值0~65535
int 4 Int32 有符号整数,值-2147483648~2147483647
*枚举可看作一个常量列表
三元操作符:条件表达式?表达式1:表达式2
类
//定义类
public class AmClass{
int a = 0;
int b = 1;
//定义构造函数
public AmClass(){
Debug.Log("aaa");
}
//定义方法
public int Add(){
return a+b;
}
}
//创建对象
AmClass ac = new AmClass();
//调用Add方法
int n = ac.Add();
封装
public 完全公开,在类内部或外部任何地方可访问
protected 同一名字空间内的派生类可访问
private 仅在类内部可以访问
//定义一个公有类
public class A
{
public int a = 0;//公有的变量
int b = 0;//默认为private,只能在类内部访问
//定义一个公有方法
public int Add()
{
return a+b;
}
//定义一个私有方法
private void Len()
{
//....
}
}
//.....
A a = new A();//创建一个对象
a.Add();
继承
//定义一个基类
public class Enemy
{
//构造函数
public Enemy(){
Debug.Log("aaaa");
}
public void UpdateAI(){
Debug.Log ("bbb");
}
}
//派生类boss继承基类Enemy
public class Boss:Enemy{
//构造函数
public Boss(){
Debug.Log("boss aaaa");
}
}
Boss bo = new Boss ();
bo.UpdateAI ();
重写override
将需要重写的方法 标记为virtual
在派生类的方法中使用override代替基类的方法