C#基础

注释

//单行,/**/多行,///文本

#region ~ #endregion分块预处理

按#region+tab补全

标识符

用于命名

规则:@只开头,不能有 . 字符,不以数字开头

Main函数

有且只有一个,起点

语句

英文分号 ; 结束

块 { }

{相当于一条语句},块后不跟分号

输出

Console.Write("输出不换行");

Console.WriteLine("输出换行");

格式化输出

Console.WriteLine("输出换行={0}{1}","张三","李四");

Console.Read()接收输入的第一个字符的ASCII码

Console.ReadLine()

数据类型

1.数值

int等同于System.Int32

float,double

2.非数值

字符char,字符串string,布尔bool(System.Boolean表示T,F)

3.字面值+后缀

1.5表示double

1.5f表示float

转义字符

1.\

\n换行,\""双引号,\\反斜杠

2.Unicode

\n=\u000A

不转义字符

@写在字符串前

变量

1.变量定义:变量类型+变量名

2.局部变量

作用方法中,位于方法内,方法执行才创建

3.全局变量

作用类中,位于类的里面,方法外面,所有方法可使用

常量

const+常量类型+常量名字=value;

定义时必须赋值,为固定值,执行期间不改变

Unity API

编辑器模板修改

路径D:\**\Editor\Data\Resources\ScriptTemplates

MonoBehaviour类

1.作用:使脚本像组件一样挂在物体上

2.脚本无法挂在物体上原因:

脚本名与类名相同

是否继承MonoBehaviour类

Debug类

1.Debug

Debug.Log("控制台输出 信息")

Debug.LogWarning("控制台输出 警告 信息")

Debug.LogError("控制台输出 错误 信息")

Debug.Log(“Start:用来初始化,只执行一次”)

Debug.Log("FixedUpdate:固定物理帧,固定0.02s")

2.print和debug区别

print("print输出")

print是MonoBehaviour类成员,必须继承MonoBehaviour类

Debug.Log

独立密封,不需继承MonoBehaviour类

Transform类

作用:负责游戏对象变换,维持父子关系。

1.设置父级

法1:p2.SetParent(p1);

法2:p2.parent = p1;

2.GetChild()

按索引返回变换子项

Time类

1.常用

Time.deltaTime上一帧到当前帧所花时间

Time.time该帧开始的时间,此为自游戏启动以来时间s

Time.Scaletime减缓动作效果传递时间为0暂停为1不减速

位置

1.position

世界坐标中,transform的位置,子物体世界坐标系中位置=子物体位置+父物体位置(相对于父物体位置赋值

p2.position = new Vector3(2, 2, 2);

p2.localPosition = new Vector3(2, 2, 2);

2.localposition

相对于父级的变换位置,检视图默认数值

旋转

1.旋转角度赋值

p2.localRotation = Quaternion.Euler(2, 2, 2);

p2.Translate(0, 0.1f, 0);//移动

p2.Rotate(0,20,0);//旋转

object类

object是所有类的基类

gameobject

游戏物体1:public GameObject obj1;

1.在层级视图中查找

obj1 = GameObject.Find("p1/p2");

GameObject中find无法查找隐藏物体

2.transform.Find可找到隐藏

obj1 = GameObject.Find("p1").transform.Find("p2").gameObject;