前提・実現したいこと
書籍「Unityではじめる2Dゲーム作り徹底ガイド」を参考にし、
水平移動のソースを利用して垂直移動を作りたいと考えています。
発生している問題
水平移動のソースにコントローラースティックの傾き加減により加速させる仕様があるため、計算式がよくわからない事になっています。
移動に使われているソースを抜粋しました。
PlayerController.cs
public class PlayerController : BaseCharacterController { public override void Horizontal_Move(float n)//水平移動 { if (!activeSts){return;} // 初期化 float dirOld = dir; breakEnabled = false; // アニメーション指定 moveSpeed = Mathf.Clamp(Mathf.Abs(n), -1.0f, +1.0f); animator.SetFloat("MovSpeed", moveSpeed); if (n != 0.0f) { // 移動 dir = Mathf.Sign(n);//方向転換を指示する命令 moveSpeed = (moveSpeed < 0.5f) ? (moveSpeed * (1.0f / 0.5f)) : 1.0f; if (grounded || movement_active) { speedVx = initSpeed * moveSpeed * dir;//歩行時の移動量 } } else { breakEnabled = true; }// 移動停止 if (dirOld != dir){ breakEnabled = true; }//その場で振り向きチェック }
疑問点
①
moveSpeed = (moveSpeed < 0.5f) ? (moveSpeed * (1.0f / 0.5f)) : 1.0f;
moveSpeedが、0.5f以下なら(moveSpeed * (1.0f / 0.5f))の計算を行いmoveSpeedへ格納するものと思われますが、
0.5f以上場合は1.0fにして、0.5f以下の場合にmoveSpeedを2倍すると移動としておかしなものになる様な気がします。
この計算式(moveSpeed * (1.0f / 0.5f))部分は何を行っているものでしょうか?
②[無意味なコードであったことが分かりましたので、質問と言えず削除しました。]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/16 16:06
2019/01/16 16:18 編集
2019/01/16 16:57
2019/01/22 14:42
2019/01/22 14:50
2019/01/22 15:02 編集
2019/01/22 15:12