2016-09-13 22 views
1

私は常に上がっているオブジェクトを持っています。私は私のオブジェクトが最初にあるスピードでそれから別のスピード(例えば、5秒後)で上がることを望みます。私は単に速度の異なるオブジェクトを移動する

transform.Translate (Vector3.up * speed, Space.World); 

を使用していますが、それは、同じ速度で、私はしたくないすべての時間を起こっています。

+1

あなたはこの問題に自分自身をソリューションをコーディングすることを試みたことがありますか?あなたの最善の試みを示す関連コードを含めてください。 – Serlite

+0

実際に私はそれをする方法がわかりません。できることは最高です@ Serlite – solo365

+0

5秒後に速度を変えてみましたか? – sokkyoku

答えて

1

5秒後に速度を変更するだけで済みます。

あなたのクラスには、次のようになります。

public IEnumerator Start() { 
    yield return new WaitForSeconds(5); 
    speed *= 2; 
} 

public void Update() { 
    transform.Translate(Vector3.up * speed * Time.deltaTime, Space.World); 
} 

それがそうでなければ、あなたの実際の速度は、あるマシンから別のマシンに異なるものになりますので、あなたがあなたの翻訳計算に* Time.deltaTimeを追加することが重要です。

フレームごとに値を加算または減算すると、Time.deltaTimeを乗算する必要があります。 Time.deltaTimeを掛け合わせると、基本的に次のように表現されます。このオブジェクトを1フレームあたり10メートルではなく、毎秒10メートル動かしたいと思います。

https://docs.unity3d.com/ScriptReference/Time-deltaTime.html

+0

ありがとうございます@ソクククク – solo365