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,是错的。

  • 相关阅读:
    每天一点正能量
    嵌入式开发-写在这里作为参照
    产品设计与开发 之 开发流程和组织架构
    产品设计与开发 之 开头语
    机器视觉基础
    项目与运营
    3.Linux如何管理分区
    2.Linux系统之硬盘与分区基础知识
    1.Linux入门介绍
    shell笔记
  • 原文地址:https://www.cnblogs.com/wantnon/p/5123078.html
Copyright © 2011-2022 走看看