zoukankan      html  css  js  c++  java
  • unity, editorWindow update计时

    对于editorWindow,Time.deltaTime不起作用,所以需用下面方法对update进行计时:

    public class myEditorWindow : EditorWindow
    {

        public float m_lastUpdateTime=0;

        public myEditorWindow(){
            wantsMouseMove = true;
        }

        
        

      public void Update(float dt){

        //to do

      }

      private void Update()
        {
            float curTime = Time.realtimeSinceStartup;
            m_lastUpdateTime = Mathf.Min (m_lastUpdateTime, curTime);//very important!!!

       float dt=curTime-m_lastUpdateTime;

        Update(dt);


            m_lastUpdateTime = curTime;
        }


        
    }

    其中m_lastUpdateTime = Mathf.Min (m_lastUpdateTime, curTime)一句非常重要,如果不加这句,将导致重大bug。

    假设不加这句,试想假如当前curTime=1000.02,而m_lastUpdateTime=1000,则dt=curTime-m_lastUpdateTime=0.02,恰在此时,我们按下unity的play按钮,则下一次Update时curTime变为0,m_lastUpdateTime=1000.02,则dt=curTime-m_lastUpdateTime=-1000.02,是错的。

  • 相关阅读:
    Callable的Future模式
    并发队列
    并发工具类
    线程池
    并发编程专题
    侧边栏:内有友链,分类等等
    脑残错误记录
    博主的OI流水账
    NOI2019游记
    NOI数论姿势瞎总结(Pi也没有)
  • 原文地址:https://www.cnblogs.com/wantnon/p/5123078.html
Copyright © 2011-2022 走看看