Unity笔记(一)
C#语言
C#与Java的相同点是面向对象
面向对象的特点是封装、继承、多态
程序生命周期:Awake ->OnEable-> Start -> FixedUpdate-> Update -> LateUpdate ->OnGUI ->OnDisable ->OnDestroy
程序基础结构
命名空间{
类{
方法{
语句{
}
}
}
}
大括号里是被包含
变量
命名规则:1.不可以数字开头
2.由数字、字母、下划线组成
3.区分大小写
4.不可使用关键字
创建方法首字母尽量大写(大驼峰),创建变量首字母小写(小驼峰)。
概念:变量用来储存信息储存数据,变量储存在内存中
通过给变量赋值来进行储存数据
创建变量语句:数据类型 变量名;
给变量赋值:1.变量名=变量值(符合数据类型的值);(float和double类型数据在数据后坠加变量名首字母);
2.数据类型 变量名=变量值(符合数据类型的值);
数据类型
数值类型
八大数据类型:整形、长整型、单精度、双精度,布尔,字符型、字符串型、日期型
整形:两个字符 四个字符 十六个字符 (位bit)一个字符最小储存8位
一字符为8位
浮点型:数值后必须加后缀
非数值类型
3.Int类型和string类型的四种区别:运行速度的快慢int快:存储int存具体数值,string是存储引用
布尔型(bool):两个值,真:假(默认值为假)
字符型:单字符(char)和字符串(string)两种形式
单字符使用单引号(’ ’)包裹住
字符串使用双引号(” ”)将字符串包裹
运算符
算数运算符:+、-、*、/、%、++、–
/:整除参与运算的变量是什么类型,结构就是什么类型,int类型整除不会四舍五入,整除是不同的数据类型会自动转换为大类型。
++ –
++ --在前 ++ --在后
先自增再运算 先运算在自增
逻辑运算符:&& || !
赋值运算符:= += -= *= /= %= >>= <<= |=
比较运算符: > < == <= >= !=
位运算符
类型转换
类型转换分为显示转换和隐式转换
显示转换为直转换
隐式转换为强转换
三目运算符:Int a=10;
Int b=20;
a > b ? b:a;
Unity
unity中有四种光:
- 方向光:Directional Light
用于模拟太阳,模拟自然光,方向光任何地方都能照射到,就和太阳一样,但是要注意照射方向。 - 点光源:Point Light
用于模拟电灯泡的照射效果。 - 聚光灯:Spot Light
用于模拟聚光灯照射效果。 - 区域光:Area Light
区域光在“实时光照”模式下是无效的,仅在“烘焙光照”模式下有用。
所有物品的基类是GameObject, TransForm是所有物品共有属性
生命周期
Update
当 MonoBehaviour 实例化完成之后,Update 在每一帧被调用。(不固定)
LateUpdate
LateUpdate 是在所有 Update 函数调用后被调用。这可用于调整脚本执行顺序。例如:当物体在Update里移动时,跟随物体的相机可以在LateUpdate里实现。
FixedUpdate(固定执行)
处理 Rigidbody 时,需要用FixedUpdate代替Update。例如:给刚体加一个作用力时,你必须应用作用力在FixedUpdate里的固定帧,而不是Update中的帧。(两者帧长不同)
Awake
Awake 用于在游戏开始之前初始化变量或游戏状态。在脚本整个生命周期内它仅被调用一次。Awake 在所有对象被初始化之后调用,所以你可以安全的与其他对象对话或用诸如
GameObject.FindWithTag 这样的函数搜索它们。每个游戏物体上的Awke以随机的顺序被调用。因此,你应该用Awake来设置脚本间的引用,并用Start来传递信息
Awake总是在
Start之前被调用。它不能用来执行协同程序。
物体旋转的方法:
transform.Rotate(new Vector3(0,0, speed * Time.deltaTime));
物体移动的方法:
transform.position = Vector3.MoveTowards(transform.position, startPoint.position,speed * Time.deltaTime);