美文网首页
【Unity】脚本开发基础

【Unity】脚本开发基础

作者: 木心Sepith | 来源:发表于2016-11-09 14:10 被阅读175次

    MonoBehaviour 类

    Unity中的脚本都是继承自MonoBehaviour,它定义了基本的脚本行为,必然事件也是从 MonoBehaviour 继承而来。除了必然事件, MonoBehaviour还定义了对各种特定事件(例如模型碰撞、鼠标移动)的响应函数,这些函数均以 On 作为开头。

    常用事件响应函数:

    名称 用途
    OnMouseEnter 鼠标移入GUI控件或者碰撞体时调用
    OnMouseOver 鼠标停留在GUI控件或者碰撞体时调用
    OnMouseExit 鼠标移出GUI控件或者碰撞体时调用
    OnMouseDown 鼠标在GUI控件或者碰撞体上按下时调用
    OnMouseUp 鼠标按键释放时调用
    OnTriggerEnter 当其他碰撞体进入触发器时调用
    OnTriggerExit 当其他碰撞体离开触发器时调用
    OnTriggerStay 当其他碰撞体停留在触发器时调用
    OnCollisionEnter 当碰撞体或者刚体与其他碰撞体或者刚体接触时调用
    OnCollisionExit 当碰撞体或者刚体与其他碰撞体或者刚体停止接触时调用
    OnCollisionStay 当碰撞体或者刚体与其他碰撞体或者刚体保持接触时调用
    OnControllerColliderHit 当控制器移动时与碰撞体发生碰撞时调用
    OnBecameVisible 对于任意一个相机可见时调用
    OnBecameInvisible 对于任意一个相机不可见时调用
    OnEnable 对象启用或者激活时调用
    OnDisable 对象禁用或者取消激活时调用
    OnDestroy 脚本销毁时调用
    OnGUI 渲染GUI和处理GUI消息时调用

    常用脚本API

    Transform 组件:

    transform组件控制游戏对象在Unity场景中的位置、旋转和大小比例,每个游戏对象都包含一个 Transform 组件。在游戏中如果想要更新玩家位置,设置相机观察角度都免不了要和Transform组件打交道。

    Transform 组件的成员变量:

    成员变量 说明
    position 世界坐标系中的位置
    localPosition 父对象局部坐标系中的位置
    eulerAngles 世界坐标系中以欧拉角表示的旋转
    localEulerAngles 父对象局部坐标系中的欧拉角
    right 对象在世界坐标系中的右方向
    up 对象在世界坐标系中的上方向
    forward 对象在世界坐标系中的前方向
    rotation 世界坐标系中以四元数表示的旋转
    localRotation 父对象局部坐标系中以四元数表示的旋转
    localScale 父对象局部坐标系中的缩放比例
    parent 父对象的Transform 组件
    worldToLocalMatrix 世界坐标系到局部坐标系的变换矩阵 (只读)
    localToWorldMatrix 局部坐标系到世界坐标系的变换矩阵(只读)
    root 对象层次关系中根对象的 Transform组件
    childCount 子孙对象的数量
    lossyScale 全局缩放比例(只读)

    Transform组件的成员函数:

    成员函数 说明
    Translate 按指定的方向和距离移动
    Rotate 按指定的欧拉角旋转
    RotateAround 按给定旋转轴和欧拉角进行旋转
    LookAt 旋转是的自身的前方巷指向目标的位置
    TransformDirection 将一个方向从局部坐标系变换到世界坐标系
    InverseTransformDirection 讲一个方向从世界坐标系变换到局部坐标系
    TransformPoint 将一个位置从局部坐标系变换到世界坐标系
    InverseTransformPoint 将一个位置从世界坐标系转换到局部坐标系
    DetachChildren 与所有子物体解除父子关系
    Find 按名称查找子对象
    IsChildOf 判断是否是指定对象的子对象

    Time类

    Unity引擎提供的Time类可获取和时间有关的信息、计算帧速率、调整时间流逝速度等。

    成员函数 说明
    time 游戏从开始到现在经理的时间(秒)(只读)
    timeSinceLevelLoad 此帧的开始时间(秒)(只读),从辞官加载完成开始计算
    deltaTime 上一帧耗费的时间(秒)(只读)
    fixedTime 最近FixedUpdate的时间。该时间从游戏开始计算
    fixedDeltaTime 物理引擎和FixedUpdate的更新时间间隔
    maximumDeltaTime 一帧的最大耗费时间
    smoothDeltaTime Time.deltaTime的平滑淡出
    timeScale 时间流逝速度的比例。可用来制作慢动作特效
    frameCount 已渲染的帧的总数(只读)
    realtimeSinceStartup 游戏从开始到现在经理的真实时间(秒),改时间不会受timeScale影响
    captureFramerate 固定帧率设置
    • 示例代码
    using UnityEngine;
    using System.Collections;
    
    public class TimeDemo : MonoBehaviour
    { 
            void OnGUI() { 
                    GUILayout.Label("当前游戏经过的时间(秒):" + Time.time); 
                    GUILayout.Label("游戏时间的缩放:" + Time.timeScale); 
                    GUILayout.Label("上一帧所消耗的时间:" + Time.deltaTime); 
                    GUILayout.Label("固定增量时间:" + Time.fixedTime); 
                    GUILayout.Label("上一帧所消耗的固定时间:" + Time.fixedDeltaTime); 
                    GUILayout.Label("当前游戏实际经过的时间:" + Time.realtimeSinceStartup); 
            }
    }
    

    Random类

    Random类可以用来生成随机数。
    Random类的成员变量:

    成员变量 说明
    seed 随机数生成器种子
    value 返回一个0~1之间的随机浮点数,包含 0 和 1
    insideUnitSphere 返回位域半径为1的求体内的一个随机点
    insideUnitCircle 返回位域半径为1的圆内的一个随机点(只读)
    onUnitSphere 返回半径为1的球面上的一个随机点(只读)
    rotation 返回一个随机旋转(只读)
    rotationUniform 返回一个均匀分布的随机旋转(只读)

    Random类的成员变量:

    成员函数 说明
    Range 返回 min 和 max 之间的一个随机浮点数,包含 min 和 max
    • 概率事件示例代码

    比如有一个抽奖活动,中奖概率为30%

    if(Random.Range(0,1) < 0.3f){
         //执行中奖代码
    }
    

    Mathf类

    主要是一些常用的数学函数
    Mathf类的变量:

    变量 说明
    PI 圆周率π,即3.14159265358979...(只读)
    Infinity 正无穷大 ∞(只读)
    NegativeInfinity 负无穷大 - ∞ (只读)
    Deg2Rad 度到弧度的转换系数(只读)
    Rad2Deg 弧度到度的转换系数(只读)
    Epsilon 一个很小的浮点数(只读)

    Mathf类的常用方法:

    常用方法 说明
    Sin 计算角度(单位为弧度)的正弦值
    Cos 计算角度(单位为弧度)的余弦值
    Tan 计算角度(单位为弧度)的正切值
    Asin 计算反正弦值(返回的角度值单位为弧度)
    Acos 计算反余弦值(返回的角度值单位为弧度)
    Atan 计算反正切值(返回的角度值单位为弧度)
    Sqrt 计算平方根
    Abs 计算绝对值
    Min 返回若干数值中的最小值
    Max 返回若干数值中的最大值
    Pow Pow(f,p)返回 f 的 p 次方
    Exp Exp(p) 返回 e 的 p 次方
    Log 计算对数
    Log10 计算基为10的对数
    Ceil Ceil(f) 返回大于或等于 f 的最小整数
    Floor Floor(f) 返回小于或等于f的最大整数
    Round Round(f) 返回浮点数 f 进行四舍五入后得到的整数
    Clamp 将数值限制在 min 和 max 之间
    Clamp01 将数值限制在 0 和 1 之间

    Coroutine协同程序

    Coroutine也叫协同程序或者协程,协同程序可以和主程序并行运行,该类的功能和多线程有些类似,但是在任—指定时刻只会有一个协同程序在运行,别的协同程序则会挂起。

    协同程序可以用来实现让一段程序等待一段时间后继续运行的效果。

    与协同程序有关的函数:

    函数 说明
    StartCoroutine 启动一个协同程序
    StopCoroutine 中指一个协同程序
    StopAllCoroutines 中指所有协同程序
    WaitForSeconds 等待若干秒
    WaitForFixedUpdate 等待直到下一次 FixedUpdate调用

    相关文章

      网友评论

          本文标题:【Unity】脚本开发基础

          本文链接:https://www.haomeiwen.com/subject/ciazuttx.html