前提・実現したいこと
Unity2Dで、スペースキーが押されると、向いている方向とは反対の方向に力を加えてオブジェクトを飛ばすというプログラムを作ろうとしています。
ですが、AddForceが上手く動作していないのか、全く飛ばされる様子がなく困っています。
エラーは全く発生していません。
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Player : MonoBehaviour 6{ 7 private Rigidbody2D rigid; 8 void Awake() { 9 transform.rotation = Quaternion.Euler(0, 0, 90); 10 rigid = this.GetComponent<Rigidbody2D>(); 11 } 12 void Update() 13 { 14 if(Input.GetKeyDown(KeyCode.Space)) 15 { 16 if(!rigid.simulated) 17 { 18 rigid.simulated = true; 19 } 20 rigid.AddForce(transform.rotation.eulerAngles * -3f, ForceMode2D.Impulse); 21 } 22 23 } 24} 25
インスペクターは以下の通りです。
見えていませんが、「位置の固定」は両方とも無効になっています。
試したこと
AddForceをif(Input.GetKeyDown(KeyCode.Space))
の外に配置(要するに毎フレーム呼び出される状態)したのですが、変化はありませんでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。