Unity2DでRPGツクールみたいなマップシステム(キャラクターの最小移動単位がマップチップの大きさと等しく、二次元配列でマップの状態を表現できるようなもの)をつくろうとして、下のようなコード(一部省略、移動方向を上方向に限定)をキャラクターオブジェクトにアタッチしました
c#
1float speed=0; //awakeで0.32(マップチップひとマス分)/deltaFlameが代入される 2int deltaFlame=8; 3bool moving=false; 4 5void Update() 6{ 7 8if (!moving) 9{ 10 if (Input.GetKey(KeyCode.UpArrow) ) 11 { 12 moving = true; 13 } 14} 15 16if (moving) 17{ 18 if (charai < deltaFlame) 19 { 20 charai++; 21 transform.position = new Vector3(transform.position.x, transform.position.y + speed, 0); 22 } 23 if (charai >= deltaFlame) 24 { 25 charai = 0; 26 moving = false; 27 } 28 29} 30 31}
しかし、これだとフレームの時間的な差分が考慮されていないのでキャラクターの動きががたがたになってしまいます。
どうすればこのようなコードにtime.deltatimeを組み込めるでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/31 10:44
2015/08/31 11:55