Unity 脚本基础一文通(三)

527 阅读1分钟
常用API

一.Time

1. time 游戏运行至今的时间 (只读)
游戏运行至今(此帧开始)的时间 (只读) 返回秒的float值.
2. deltaTime 帧时间 (只读)
以秒计算,完成最后一帧的时间(只读)
void Update()
{
    speed=80;
    transform.Rotate(0,speed*Time.deltaTime,0);
    // print(Time.deltaTime);
}
3.timeScale 缩放时间 (浮点型)
缩放时间.适于 暂停, 慢动作或者 快进
Time.timeScale=0.2f;
注意: timeScale只会影响fix update 和 乘了deltatime的组件,不会影响update;
4. fixedDeltaTime
fix update专用的deltatime //常用于解决机器卡顿时的恒定运动
5. unscaledDeltaTime 不受缩放影响的deltatime
Cube8ts.Rotate(0,speed*Time.unscaledDeltaTime,0);//此物体暂停也能动

二. Invoke 执行函数

1.Invoke(string 函数名, float 延迟时间开始) //延迟一段时间后执行函数
2. InvokeRepeating(string 函数名, float 延迟时间开始,float 重复执行间隔);
//延迟一段时间后每个一段时间执行一次
3.CancelInvoke(string 函数名) //取消执行某个函数
三. 预制件
生成方法:将一个Hierarchy面板中的物体拖入project面板

附: update中按固定时间执行动作

方案一: 思路:设置一个执行时间,执行后刷新新的执行时间
    private void Update() {
        if(Time.time>=nextTime){
            sec--;
            txt1.text=secToTime(sec);
            nextTime=Time.time+1;
        }
    }
方案二: 思路:累加时间,够了之后执行语句,累加清零
    private void Update() {
        timeAdd+=Time.deltaTime;
        if(timeAdd>=1){
            sec--;
            timeAdd=0;
            txt1.text=secToTime(sec);
        }
    }
方案三:
    void Start()
    {
        txt1=GetComponent<Text>();
        sec=4000;
        InvokeRepeating("timeShow",0,1);
    }

    void timeShow()
   {
        txt1.text=secToTime(sec);
        sec--;
    }