csharp 统一の更新タイミング検证コード

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 统一の更新タイミング検证コード相关的知识,希望对你有一定的参考价值。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TestUpdate : MonoBehaviour
{
    public Text text;
    // Use this for initialization
    void Start()
    {
		
    }
	
    // Update is called once per frame
    void Update()
    {
        /*
        フレーム間で保存されるスクリーンショットを許可するためゲームの再生時間が遅くなります。
        このプロパティーが 0 以外の値ならフレームの更新がリアルタイムでフレームのレンダリングに必要な時間に関係ないインターバル 
        (1.0/captureFramerate) で発生します。これは一定のフレームレートが必要で、
        スクリーン画像を保存するためにフレーム間で十分な時間を残してムービーをキャプチャーしたい場合に便利です。

        getter / setter
        
        */
//        Time.captureFramerate;

        /*
         * 最後のフレームを完了するのに要した時間(秒)(Read Only)
         */ 
//        Time.deltaTime;

        /*
         * Physics や (MonoBehaviour の FixedUpdate のような) 
         * 他の固定フレームレートの更新を実行するインターバル(秒)
         */ 
//        Time.fixedDeltaTime;

        /**
         * 最新の FixedUpdate を開始した時間 (Read Only) 。これはゲーム開始からの時間(秒)です。
         */ 
//        Time.fixedTime;


//        Time.fixedUnscaledDeltaTime;
//        Time.fixedUnscaledTime;
//        Time.frameCount;
//        Time.inFixedTimeStep;

        /**
         * フレームがとれる最大時間。( MonoBehaviour の FixedUpdate のように)
         * Physics やその他固定フレームレートを更新します。
         */ 
//        Time.maximumDeltaTime;
//        Time.maximumParticleDeltaTime;

        /**
         * ゲーム開始からのリアルタイム(秒)(Read Only) 
         */ 
//        Time.realtimeSinceStartup;
//        Time.renderedFrameCount;
//        Time.smoothDeltaTime;

        /**
         * このフレームの開始する時間(Read Only)。ゲーム開始からの時間(秒)です。
         */ 
//        Time.time;

        /**
         * 時間の経過をスケールします。これはスローモーション効果で使用できます。
         */ 
//        Time.timeScale;

        /**
         * フレームが開始された時間 (Read Only) 。最後のレベルが読み込まれてからの時間 (秒) です。
         */ 
//        Time.timeSinceLevelLoad;

        /**
         * 最後のフレームを完了した timeScale に依存しない時間(秒) (Read Only)
         */ 
//        Time.unscaledDeltaTime;

        /**
         * このフレームの始まる timeScale に依存しない時間 (Read Only)。
         * これはゲーム開始からの時間(秒)です。
         */ 
//        Time.unscaledTime;

        text.text = string.Format(@"
deltaTime : {0}秒
fixedDeltaTime : {1}秒        
",
            Time.deltaTime,
            Time.fixedDeltaTime
        );
    }

    int[] frameRateArray = new int[]{ 60, 30, 15, 10, 5, 2, 1 };
    float[] timeScaleArray = new float[]{ 1f, 0.8f, 0.5f, 0.2f, 0.1f, 0 };

    void OnGUI()
    {
        GUILayout.BeginHorizontal();
        GUILayout.BeginVertical();
        foreach (var f in frameRateArray)
        {
            if (GUILayout.Button(f.ToString(), 
                    GUILayout.Width(50f), 
                    GUILayout.Height(50f)))
            {
                Application.targetFrameRate = f;
            }
        }
        GUILayout.EndVertical();
        GUILayout.BeginVertical();
        foreach (var f in timeScaleArray)
        {
            if (GUILayout.Button(f.ToString(), 
                    GUILayout.Width(50f), 
                    GUILayout.Height(50f)))
            {
                Time.timeScale = f;
            }
        }
        GUILayout.EndVertical();
        GUILayout.EndHorizontal();
    }
}

以上是关于csharp 统一の更新タイミング検证コード的主要内容,如果未能解决你的问题,请参考以下文章

csharp Time.deltaTImeタイミング调整

python Theanoの和の动作検证コード

markdown 失败した的delayed_jobを任意のタイミングで実行する

css 动画はじめるタイミング

csharp 大量のオブジェクトを何度も吐温させる场合はSetRecyclable(真)にした方がよいかもと検证したサンプルコード

csharp 统一のシーンファイルリストウィンドウ。全てのシーン,ビルド登录シーンを切り替え可。