ゴール時にリザルト画面が表示され、「Retry?」「Next Stage」のボタンを押すと、何故かプレイヤーに設定しているattackSEが再生されます。
元のコード(Playerスクリプト)
void FixedUpdate() { if (!isDown) { //接地判定を得る isGround = ground.IsGround(); isHead = head.IsGround(); //各種座標軸の速度を求める float xSpeed = GetXSpeed(); float ySpeed = GetYSpeed(); //アニメーションを適用 SetAnimation(); //移動速度を設定 Vector2 addVelocity = Vector2.zero; if (moveObj != null) { addVelocity = moveObj.GetVelocity(); } rb.velocity = new Vector2(xSpeed, ySpeed) + addVelocity; } else { rb.velocity = new Vector2(0, -gravity); } if (Input.GetButtonDown("Fire1")) { anim.SetBool("attack", true); anim.Play("player_attack"); GManager.instance.PlaySE(attackSE); } else { anim.SetBool("attack", false); } }
この状態では、操作上の不具合は無いのですが、先に述べた通り、リザルト画面でボタンを押した時にattackSEが再生されます。
弾による攻撃に関するコードがFixedUpdateの中にあるのが原因ではと考え、取り出してみました。
public void Attack() { if (Input.GetButtonDown("Fire1")) { anim.SetBool("attack", true); anim.Play("player_attack"); GManager.instance.PlaySE(attackSE); } else { anim.SetBool("attack", false); } }
この状態では、リザルト画面でボタンを押すと設定してあるSEが再生されるようになりましたが、今度はplayer_attackとattackSEが再生されなくなりました。
どう修正すれば良いのか、教えて頂きたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/21 08:51
2020/05/21 09:12
2020/05/21 09:39