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;