Unityサンプル

Unityサンプル


コード以外の修正説明

サンプル実装時点 Unity の Roll a Ball サンプル画面と Player の Rigidbody 設定

初期位置を高くしてみたり Unityエディタ画面、InspectorでPlayerのPosition Yを10.5に設定し初期位置を高くした様子 カメラ位置を合わせ UnityでMain Cameraを選択し、Transformの位置をY18・Z-15、回転X35に調整したInspector画面 物理特性マテリアルを追加し UnityのAssetsメニューでCreateからPhysic Materialを選択して物理特性マテリアルを追加する操作 反発係数をセット Unityの物理特性マテリアル設定で反発係数Bouncinessを0.9にセットしたInspector

コード修正内容

スペースキーでのジャンプと、枠からはみ出て落ちた時にスタート位置から復活するよう変更 余裕があったら説明を追加

 void FixedUpdate()
 {
     // 空中では操作不可
     // 以下の理由により本当は違う方法(地面との接触など)で判定を行うべき
     // 1.float同士の==比較は誤字で一致しないかも
     // 2.衝突判定次第で座標が安定しないかも
     // 3.外へ飛び出た際、Y座標が一致すれば空中ジャンプ可能
     if(transform.position.y == 0.5f)
     {
         float moveHorizontal = Input.GetAxis("Horizontal");
         float moveVertical = Input.GetAxis("Vertical");
         float moveJump = 0.0f;

         // ジャンプ
         if(Input.GetKeyDown("space"))
         {
             moveJump = 30.0f;
         }

         Vector3 movement = new Vector3(moveHorizontal, moveJump, moveVertical);
         rb.AddForce(movement * speed);
     }
     else if(transform.position.y < -10.0f)
     {
         rb.velocity = Vector3.zero;
         transform.position = new Vector3(0.0f, 10.5f, 0.0f);
     }
 }

share

X で共有

related