Texture 纹理
用于处理贴图的基类。包含的功能被 Texture2D 以及 RenderTexture 所共用。
MonoBehaviourMono行为
1.Start()
在Update方法被调用之前开始调用Start方法,而且Start方法在整个MonoBehaviour生命周期内只被调用一次。Awake和Start不同的地方在于Start方法仅仅在脚本初始化后被调用,这样允许你延迟加载任何代码,直到代码真正被使用时。Awake方法总是在Start方法执行之前被调用,这样允许你初始化脚本代码。
2.Awake()
当脚本被加载后立即调用Awake方法,这个方法通常在Start()开始之前声明某些变量或者游戏的状态标记符。同样,Awake也是在MonoBehaviour声明周期内被调用一次。Awake在所有的对象(个人认为是GameObject)实例化后被调用,因此绑定这个脚本的对象能与其他对象之间相互作用,例如,同过GameObjectFindWithTag方法查找其他对象。
3.Update()
在Start方法执行过后,游戏的每一帧都在调用此方法。
4.FixedUpdate()
每一帧都在调用此方法。当处理Rigdibody时FixedUpdate应该代替Update方法,比如,当一个物体需要增加一个力时,应该将这个力的代码写在FixedUpdate()里面。
void FixedUpdate() {
rigidbody.AddForce(Vector3.up);
}
5.LateUpdate()
每一帧都在调用此方法。当每一帧的Update方法全部执行完后,此方法开始被调用。举个例子来说吧,当一个角色移动而摄像机也要跟着移动时,摄像机的处理就应该在LateUpdate()里面了。
6.OnGUI()
OnGUI()在每一帧被调用数次(several times),假如MonoBehaviour的enabled属性设置为false时,OnGUI()就失去作用了。
7.DontDestroyOnLoad()
进入另一个场景时,保证绑定此脚本的对象的内存不被释放掉。也就是说绑定此脚本的GameObject在下一个场景中依然存在。
【Unity3D的四种坐标系】
1、World Space(世界坐标):我们在场景中添加物体(如:Cube),他们都是以世界坐标显示在场景中的。transform.position可以获得该位置坐标。
2、Screen Space(屏幕坐标):以像素来定义的,以屏幕的左下角为(0,0)点,右上角为(Screen.width,Screen.height),Z的位置是以相机的世界单位来衡量的。注:鼠标位置坐标属于屏幕坐标,Input.mousePosition可以获得该位置坐标,手指触摸屏幕也为屏幕坐标,Input.GetTouch(0).position可以获得单个手指触摸屏幕坐标。
Screen.width = Camera.pixelWidth
Screen.height = Camera.pixelHeigth
3、ViewPort Space(视口坐标):视口坐标是标准的和相对于相机的。相机的左下角为(0,0)点,右上角为(1,1)点,Z的位置是以相机的世界单位来衡量的。
4、绘制GUI界面的坐标系:这个坐标系与屏幕坐标系相似,不同的是该坐标系以屏幕的左上角为(0,0)点,右下角为(Screen.width,Screen.height)。
【四种坐标系的转换】
1、世界坐标→屏幕坐标:camera.WorldToScreenPoint(transform.position);这样可以将世界坐标转换为屏幕坐标。其中camera为场景中的camera对象。
2、屏幕坐标→视口坐标:camera.ScreenToViewportPoint(Input.GetTouch(0).position);这样可以将屏幕坐标转换为视口坐标。其中camera为场景中的camera对象。
3、视口坐标→屏幕坐标:camera.ViewportToScreenPoint();
4、视口坐标→世界坐标:camera.ViewportToWorldPoint();
Screen屏幕
访问显示信息。
以像素单位,屏幕窗口的当前宽度。(只读)
Matrix4x4矩阵
返回单位矩阵(只读)。
设置这个矩阵为一个平移、旋转和缩放矩阵。
Quaternion四元数
同一性旋转(只读)。该四元数,相当于"无旋转":这个物体完全对齐于世界或父轴。
GUIStyle界面样式
用于界面元素的样式设置。
这个GUIStyle的名字。用于获取基于名字的样式。
用于该组件正常显示时的渲染设置。
用于当鼠标悬停在控件之上时的渲染设置。
用于当控件被鼠标按下时的渲染设置。
Time时间
从Unity获取时间信息的接口。
以秒计算,完成最后一帧的时间(只读)。
GUI
GUI.Button 当用户点击按钮的时候返回true。
也就是说,如果OnGui函数里调用该接口,当返回TRUE时,能接收并处理自己想要的点击事件
PlayerPrefs游戏存档
在游戏会话中储存和访问游戏存档。
设置由key确定的参数值。
如果存在,返回偏好文件中key对应的值。
Texture2D二维纹理
纹理处理类。使用这个动态创建纹理或修改现有纹理资源
Input输入
输入系统的接口。
使用这个类能够读取输入管理器设置的按键,以及访问移动设备的多点触控或加速感应数据。
注意:每次输入在"Update()"之前不会再更新,所以建议你将所有的输入调用都写在Update方法中。(Update循环中)
想要读取轴向使用Input.GetAxis方法获取下列默认轴: "Horizontal" 和"Vertical" 映射于控制杆、A、W、S、D和箭头键(方向键)。 "Mouse X" 和"Mouse Y" 映射于鼠标,"Fire1", "Fire2" "Fire3"映射于键盘的Ctrl、Alt、Cmd键和鼠标中键或控制器的按钮。新的输入设置可以使用输入管理器来添加。
iOS和Android设备能够支持多点触控。你可以通过Input.touches属性集合访问在最近一帧中触摸在屏幕上的每一根手指的状态数据。
当用户按下指定名称的按键时的那一帧返回true。
触摸的数量(只读)。
返回一个存放触摸信息的对象(不允许分配临时变量)。
在用户释放指定鼠标按键的那一帧返回true。
当前所在像素坐标的鼠标位置(只读)。
是否有某一按键或鼠标按钮此时被按住?(只读)
最近一次测量的设备在三维空间中的线性加速度(只读)
Touch触摸
用来记录一个手指触摸在屏幕上的状态。
描述触摸的相位。
phase 和 TouchPhase比对,判断触碰方式;
// 手指刚触摸到屏幕的时候
Input.GetTouch(0).phase == TouchPhase.Began;
// 手指在屏幕上移动
Input.GetTouch(0).phase == TouchPhase.Moved;
// 手指触摸屏幕,但并未移动
Input.GetTouch(0).phase == TouchPhase.Stationary;
// 手指从屏幕上移开,这是一个触控的最后状态
Input.GetTouch(0).phase == TouchPhase.Ended;
// 系统取消追踪触控。这常发生在用户把屏幕放到脸上或者同时触控超过了5根手指,同样也是触控的最后一个状态
Input.GetTouch(0).phase == TouchPhase.Canceled;
触摸的位置。
定向光源