序列化: [SerializeField],点不出来,只能在面板上显示绑定游戏物体
//公有隐藏
特有函数
特有函数:不需要调用,自动执行
Awake最先执行->OnEable
面向对象思想
面向对象思想:分为具体对象和抽象对象,具体对象是真实存在的,抽象对象是一类真实对象的 特征的集合,分别对应着对象和类。把一个脚本绑在各个物体上的时候,每个物体都会分别执行 这个脚本
对象~=实例
对象:特指,具体的东西,具体存在
类:泛指,抽象的概念,相当于下定义,共性的东西
变量:数据
函数:行为,动作
静态变量和动态变量
静态变量:调用:类名点(共性),地址不变
动态变量/实例变量:调用:实例点(特性),跟着实例走,地址随机
在单机游戏修改器中改变的就是变量,一边用数值查询的方式,用一个数据之前进行
public static int leg;public string name;void Start(){Player player=new Player();
//静态变量可以直接用类名点出来Player.leg = 4;
//动态变量要用实例调用player.name = "sd";}
组件跟代码是一个东西,是一种能力
这个按钮叫Eable
函数调用
函数调用时由内向外执行
类比高中数学f(f(xf(x)))
int AA(int a){ return a; }int BB(int b){ return b; }int CC(int c){ return c; } //函数调用时由内向外执行
CC(BB(AA(3)));
GetKey方法
有三种点击键盘的方法:
GetKey按着按键触发(要一直按着)
GetKeyDown按下键盘时触发
GetKeyUp键盘弹起来的时候触发
获取组件
获取组件=获取能力
小写是对象,大写是类
获取gameObject的组件,要调用GetComponent方法
调用方法:GetComponent<要调用的组件>
gameObject.GetComponent<Light>().enabled = false;
//获取组件=获取能力
//小写是对象,大写是类transform.Translate(Vector3.forward * 5 * Time.deltaTime);//按秒算Time.deltaTime,算是一个单位Vector3 v = Vector3.forward * speed * Time.deltaTime;GetComponent<Transform>().Translate(v);gameObject.GetComponent<Light>().enabled = false;GetComponent<Light>().enabled = true;GetComponent<Light>().color= new Color(1,0,0)
部分组件的使用
可以调节摄像机视野的大小
c#语言书写方法总结
主语(实例对象、抽象对象)+谓语(函数、类)
if()的()里放的是bool值:放函数的时候返回值是bool值,放方法的时候结果要是bool值