Unity常用脚本API(学习笔记01)
事件方法
Start(){} //当游戏运行起来,会马上且仅执行一次。
Update(){} //循环调用,每帧调用一次,每秒大概执行60次。
获取键盘输入
///返回值:bool类型
Input.GetKey(); //按下某键后,持续返回true.
Input.GetKeyDown(); //按下某键的一瞬间,返回true.
Input.GetKeyUp(); //抬起某键的一瞬间,返回true.
参数:KeyCode 枚举(Enum).
KeyCode:键码(A~Z;F1~F12),保存了物理键盘按键“索引码”.
获取鼠标输入
///返回值:bool类型
Input.GetMouseButton(); //按下某键后,持续返回true.
Input.GetMouseButtonDown(); //按下某键的一瞬间,返回true.
Input.GetMouseButtonUp(); //抬起某键的一瞬间,返回true.
参数:鼠标按键索引值,0表示左键,1表示右键,2表示中键.
变换组件移动物体
1相关方法
gameObject.GetComponent<Type>(); //获取相应组件的引用.
Transform.Translate(Vector3,Space) //移动物体的位置,Vector3表示三维向量,可以表示一个方向,也可以表示一个位置;Space(enum)表示空间;Space.Self表示物体自身的坐标系.
Space.World表示世界坐标系.
使用刚体移动物体
1.相关方法
Rigidbody.MovePosition(Vector3) //使用刚体移动物体的位置,物体是根据世界坐标系的方向移动的,会触发物理相关的事件.
2.参数
MovePosition中的Vector3要使用当前位置+方向的方式.
给刚体施加一个力
Rigidbody.AddForce(Vector3,ForceMode); //给刚体添加一个力,让物体按世界坐标系进行运动.
Vector3:力的方向和大小;
ForceMode:力的模式(enum类型).有四种值;
Acceleration:加速度;
Force:通常用于设置真实的物理;
Impulse:冲击力,用于瞬间发生的力;
VelocityChange:速度的变化;
AddRelativeForce(); //给刚体添加一个力,让刚体按自身坐标系进行运动
FixedUpdate()
固定更新方法.
所有个物理相关的操作,代码都要写在FixedUpdate()方法体内
固定更新时间间隔是0.02秒(可自行设置),1秒执行50次
碰撞事件监测方法
OncollisionEnter(Collision) //当碰撞开始时调用,只调用一次.
OncollisionExit(Collision) //当碰撞结束时调用,只调用一次.
OncollisionStay(Collision) //当碰撞进行时调用,持续调用.
参数:Collision.gameObject表示被撞的物体的引用.
Collision.gameObject.name被撞物体的名字
触发事件监测方法
OnTriggerEnter(Collider) //当进入触发范围开始时调用,只调用一次.
OnTriggerExit(Collider) //当离开触发范围开始时调用,只调用一次.
OnTriggerStay(Collider) //在触发范围内,持续调用.
参数:Collider,碰撞体,一个类,用于传递触发信息.
Collider.gameObject属性,被触发物体的引用.
gameObject.name ,被触发物体的名字.
通过Tag标签查找物体
GameObject.FindGameObjectsWithTag(string) //静态方法,通过特定的标签,查找到所有贴有该标签的游戏物体,返回一个数组。
String:标签名
可以通过for循环遍历输出数组.