UnityのSlider を使ってスタミナ機能を作ろうとしています。画面をクリックするとプレイヤーはジャンプするのですが、その際にスタミナのゲージが減少し、0以下の場合一定時間経過しないと再度ジャンプできないような仕様で作りたいと思っています。
色々なサイトを参考にして、画面をクリックするとスタミナのゲージが減る仕組みは作れたのですが、ゲージが0以下になった時にプレイヤーがジャンプできない仕様にすることができずにいます。どうすればゲージとプレイヤーを連動させることができますか?
お暇があれば助言をいただきたいです。
追記1/7 プレイヤー側の方でSliderの管理をすることでスタミナゲージをジャンプの時に減らすことができました。助言をしてくださった方々、本当にありがとうございます。あと、上記の通りプレイヤーがのスタミナが0になったらジャンプの動作を受け付けないようにし、一定時間でスタミナの回復を行いたいのですが、どのような手段で行えばいいか助言をいただきたいです。
プレイヤー側のコード public class PlayerControll : MonoBehaviour { public float Hp = 100f;//スタミナ public Slider _slider;//新規追加 public GameObject slider;//新規追加 //スプライト番号 const int SPR_FALL = 0; const int SPR_JUMP = 1; [SerializeField] float Jump = 400;//ジャンプ力 public Sprite[] SPR_LIST;//アニメーション用スプライトの保持 public GameObject gameMgr;//ゲーム管理 public Rigidbody2D _rigidbody;//物理挙動 SpriteRenderer _renderer;//スプライト描画 GameMgr _gameMgr;//ゲーム管理スクリプト // Start is called before the first frame update void Start() { _rigidbody = GetComponent<Rigidbody2D>();//物理挙動のコンポーネント獲得 _renderer = GetComponent<SpriteRenderer>();//スプライト描画コンポーネント獲得 _gameMgr = gameMgr.GetComponent<GameMgr>();//ゲーム管理スクリプトを取得 _slider = slider.GetComponent<Slider>();//新規追加 _slider.value = hp;//新規追加 } // Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { GetComponent<AudioSource>().Play(); _rigidbody.velocity = Vector2.zero;//落下速度を一度リセット _rigidbody.AddForce(new Vector2(0, Jump));//上方向の力 _slider.value -= 10f; //新規追加 } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/02 06:24
2021/01/03 18:22
2021/01/04 14:06
退会済みユーザー
2021/01/07 04:01
2021/01/07 09:45
2021/01/07 09:55
2021/01/07 10:11
2021/01/07 10:20
2021/01/07 10:47