Unity3D常用API总结
一. MonoBehaviour类及查询API
MonoBehaviour是每个脚本的基类.
MonoBehaviour常用方法及调用顺序
//最开始调用,做一些初始化工作。建议少用,此刻物体可能还没有实例化出来,会影响程序执行顺序。
void Awake(){}
// 不是很紧急的初始化,一般放在Start里面来做。仅在Update函数第一次被调用前调用。
void Start(){}
//用户点击检视面板的Reset按钮或者首次添加该组件时被调用。此函数只在编辑模式下被调用。Reset最常用于在检视面板中给定一个最常用的默认值。
void Reset(){}
// 每一帧调用一次,帧间隔时间有可能改变。
void Update(){}
//以相同时间间隔调用,用在力学更新效果中。执行在Update之前。
void FixedUpdate(){}
//在Update和FixedUpdate调用之后调用。一般人物的移动放在Update中,而摄像机的跟进变化放到FixedUpdate中。确保两个独立,一前一后,不产生错误。
void LateUpdate(){}
//On开头的方法,是由其他事件触发调用的。
//物体被删除时调用
void OnDestroy(){}
//物体启用时被调用
void OnEnable(){}
//物体被禁用时调用
void OnDisable(){}
//这个函数会每帧调用好几次(每个事件一次),GUI显示函数只能在OnGUI中调用
void OnGUI(){}
下图是单个脚本内部方法的调用顺序:
查询API:游戏蛮牛Unity3D-API
二. Input类及脚本字段属性在检视面板中的运用
输入系统的接口.
getaxis、getkey、getbutton、getjoystick等函数。
为了提高输入方式在代码中的效率,推荐用GetButton()方法,而不是GetKey().GetButton根据不同的设备进行对应的按键输入,比如手柄,PC,手机 etc.
Unity中定制按钮的方式
Edit–>project setting–>Input
具体按键设定规则见:Unity圣典Input输入
GetKey()、GetKeyDown()、GetKeyUp()方法:
// 每一帧调用一次,帧间隔时间有可能改变。
void Update()
{
//KeyCode为枚举类
//GetKey方法:只要按下就会执行 直到不按 执行不止一次
Input.GetKey(KeyCode.A);
//GetKeyDown:按下按键执行 执行一次
Input.GetKeyDown(KeyCode.A);
//GetKeyDown:按下后松开按键执行 执行一次
Input.GetKeyUp(KeyCode.A);
//以上方法返回布尔值
}
GetButton()、GetButtonDown()、GetButtonUp()方法:
// 每一帧调用一次,帧间隔时间有可能改变。
void Update()
{
//GetButton方法括号中的值为buttonName(按钮别称) 可在相关文档中查阅
//GetButton方法:只要按下就会执行 直到不按 执行不止一次
Input.GetButton("Jump");
//GetButtonDown:按下按键执行 执行一次
Input.GetButtonDown("Jump");
//GetButtonDown:按下后松开按键执行 执行一次
Input.GetButtonUp("Jump");
//以上方法返回布尔值
}
GetAxis() 获取轴
根据坐标轴名称返回虚拟坐标系中的值。
使用控制器和键盘输入时此值范围在-1到1之间。如果坐标轴设置为鼠标运动增量,鼠标增量乘以坐标轴灵敏度的范围将不是-1到1 。
C#脚本:
// A very simplistic car driving on the x-z plane.
// 一个十分简单的在x-z平面的驾车例子
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
public float speed = 10.0F;//移动速度
public float rotationSpeed = 100.0F;//旋转速度
void