<動作など>
「↑」を押しつづけた分、ゲームオブジェクトcatが銃を撃ちまくって
(銃弾はcatの座標の斜め上から生成されるようにしています、そしてある高さで銃弾はオブジェクト破棄されるようになっています。)
上から降ってくる矢と銃弾が衝突すると矢のオブジェクトを破棄するという感じになっています。
<質問内容>
catが左右反転したときに(銃を左手に持った時)銃弾の生成位置も正しく反転されるように
(catのx座標 -0.4f, catのy座標 + 0.7f, catのz座標 にしたいです)
するにはどうコードをかけば良いですか? 回答よろしくお願いします。
※当たり判定部分は省略しています。
Newtralではなく正しくはNeutralですが放置してます。(動作確認済み)
//catにアタッチしたスクリプトです。 public class PlayerController : MonoBehaviour { Rigidbody2D rigid2D; Animator animator; float jumpForce = 680.0f; float walkForce = 30.0f; float maxWalkSpeed = 2.0f; public GameObject BulletPrefab; void Update() { // ジャンプする if (Input.GetKeyDown(KeyCode.Space) && this.rigid2D.velocity.y == 0) { this.animator.SetTrigger("JumpTrigger"); this.rigid2D.AddForce(transform.up * this.jumpForce); } // 左右移動 int key = 0; if (Input.GetKey(KeyCode.RightArrow)) { key = 1; this.animator.SetTrigger("ToWalkTrigger"); } if (Input.GetKey(KeyCode.LeftArrow)) { key = -1; this.animator.SetTrigger("ToWalkTrigger"); } // プレイヤの速度 float speedx = Mathf.Abs(this.rigid2D.velocity.x); // スピード制限 if (speedx < this.maxWalkSpeed) { this.rigid2D.AddForce(transform.right * key * this.walkForce); } // 動く方向に応じて反転 if (key != 0 && !Input.GetKey(KeyCode.UpArrow)) { transform.localScale = new Vector3(key, 1, 1); } //neutral時 if (key == 0) { this.animator.SetTrigger("ToNewtralTrigger"); } // 背を向けて銃撃つ if (Input.GetKey(KeyCode.UpArrow) && this.rigid2D.velocity.y == 0) { this.animator.SetTrigger("BackTrigger"); GameObject go = Instantiate(BulletPrefab); go.transform.position = new Vector3(transform.position.x +0.4f, transform.position.y + 0.7f, transform.position.z); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/24 04:47