前提・実現したいこと
Unityで3Dオブジェクトを自然にジャンプさせたい
発生している問題・エラーメッセージ
上方向(Y軸)を加算することはできるのですが、そこから自然な重力がかけられなくて困っています。
エラーは出ていません
該当のソースコード
C#
1 public class NewBehaviourScript : MonoBehaviour { 2 3 private GameObject char_in; 4 private Rigidbody char_rb; 5 bool pause_flag; 6 float move_x; 7 float move_z; 8 float rota_y; 9 float rota_x; 10 float mouse_x; 11 float mouse_y; 12 public float jumpspeed; 13 public float gravity; 14 public float speed = 2.0f; 15 public float sensi = 2.0f; 16 17 void Start() 18 { 19 char_in = GameObject.Find("Charainner"); 20 char_rb = GetComponent<Rigidbody>(); 21 pause_flag = false; 22 } 23 24 void Update() 25 { 26 mouse_x = Input.GetAxis("Mouse X"); 27 mouse_y = Input.GetAxis("Mouse Y"); 28 rota_y = mouse_x * sensi; 29 rota_x = mouse_y * sensi * -1f; 30 transform.Rotate(0, rota_y, 0); 31 char_in.transform.Rotate(rota_x, 0, 0); 32 33 move_x = 0f; 34 move_z = 0f; 35 if (Input.GetKey(KeyCode.D)) 36 { 37 move_x += speed; 38 } 39 if (Input.GetKey(KeyCode.A)) 40 { 41 move_x -= speed; 42 } 43 if (Input.GetKey(KeyCode.W)) 44 { 45 move_z += speed; 46 } 47 if (Input.GetKey(KeyCode.S)) 48 { 49 move_z -= speed; 50 } 51 if (Input.GetButton("Jump")) 52 { 53 char_rb.AddForce(Vector3.up * jumpspeed); 54 } 55 char_rb.velocity = move_z * transform.forward + move_x * transform.right; 56 57 if (pause_flag) 58 { 59 Cursor.visible = true; 60 Cursor.lockState = CursorLockMode.None; 61 } 62 else 63 { 64 Cursor.visible = false; 65 Cursor.lockState = CursorLockMode.Locked; 66 } 67 if (Input.GetKey(KeyCode.Escape)) 68 { 69 pause_flag = true; 70 } 71 } 72 73 void FixedUpdate() 74 { 75 char_rb.AddForce(Vector3.down * gravity, ForceMode.Acceleration); 76 } 77}
試したこと
Unityの設定で重力の値を上げたりしましたが駄目でした。
補足情報(FW/ツールのバージョンなど)
Unity2018.2.5f1 Personal
Microsft Visual Stadio
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/12 06:14