私は常に上がっているオブジェクトを持っています。私は私のオブジェクトが最初にあるスピードでそれから別のスピード(例えば、5秒後)で上がることを望みます。私は単に速度の異なるオブジェクトを移動する
transform.Translate (Vector3.up * speed, Space.World);
を使用していますが、それは、同じ速度で、私はしたくないすべての時間を起こっています。
私は常に上がっているオブジェクトを持っています。私は私のオブジェクトが最初にあるスピードでそれから別のスピード(例えば、5秒後)で上がることを望みます。私は単に速度の異なるオブジェクトを移動する
transform.Translate (Vector3.up * speed, Space.World);
を使用していますが、それは、同じ速度で、私はしたくないすべての時間を起こっています。
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
ありがとうございます@ソクククク – solo365
あなたはこの問題に自分自身をソリューションをコーディングすることを試みたことがありますか?あなたの最善の試みを示す関連コードを含めてください。 – Serlite
実際に私はそれをする方法がわかりません。できることは最高です@ Serlite – solo365
5秒後に速度を変えてみましたか? – sokkyoku