teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

文とscript追加

2021/01/07 09:41

投稿

nine_fish397
nine_fish397

スコア8

title CHANGED
File without changes
body CHANGED
@@ -2,12 +2,17 @@
2
2
  色々なサイトを参考にして、画面をクリックするとスタミナのゲージが減る仕組みは作れたのですが、ゲージが0以下になった時にプレイヤーがジャンプできない仕様にすることができずにいます。どうすればゲージとプレイヤーを連動させることができますか?
3
3
  お暇があれば助言をいただきたいです。
4
4
 
5
+ 追記1/7 プレイヤー側の方でSliderの管理をすることでスタミナゲージをジャンプの時に減らすことができました。助言をしてくださった方々、本当にありがとうございます。あと、上記の通りプレイヤーがのスタミナが0になったらジャンプの動作を受け付けないようにし、一定時間でスタミナの回復を行いたいのですが、どのような手段で行えばいいか助言をいただきたいです。
6
+
5
7
  ```ここに言語を入力
6
8
  プレイヤー側のコード
7
9
  public class PlayerControll : MonoBehaviour
8
10
  {
9
11
  public float Hp = 100f;//スタミナ
12
+ public Slider _slider;//新規追加
13
+ public GameObject slider;//新規追加
10
14
 
15
+
11
16
  //スプライト番号
12
17
  const int SPR_FALL = 0;
13
18
  const int SPR_JUMP = 1;
@@ -32,6 +37,8 @@
32
37
  _rigidbody = GetComponent<Rigidbody2D>();//物理挙動のコンポーネント獲得
33
38
  _renderer = GetComponent<SpriteRenderer>();//スプライト描画コンポーネント獲得
34
39
  _gameMgr = gameMgr.GetComponent<GameMgr>();//ゲーム管理スクリプトを取得
40
+ _slider = slider.GetComponent<Slider>();//新規追加
41
+ _slider.value = hp;//新規追加
35
42
  }
36
43
 
37
44
  // Update is called once per frame
@@ -41,35 +48,9 @@
41
48
  {
42
49
  GetComponent<AudioSource>().Play();
43
50
  _rigidbody.velocity = Vector2.zero;//落下速度を一度リセット
44
- _rigidbody.AddForce(new Vector2(0, Jump));//上方向の力
51
+ _rigidbody.AddForce(new Vector2(0, Jump));//上方向の力
52
+
53
+ _slider.value -= 10f; //新規追加
45
54
  }
46
55
  }
47
- ```
48
-
49
- ```ここに言語を入力
50
- Sliderのコード
51
- public class SutaminaBar : MonoBehaviour
52
- {
53
- public PlayerControll playerControll;
54
- Slider hpSlider;
55
-
56
- // Use this for initialization
57
- void Start()
58
- {
59
- hpSlider = GetComponent<Slider>();
60
-
61
- }
62
-
63
- // Update is called once per frame
64
- void Update()
65
- {
66
- //クリックしたときにhpを10減らす。
67
- if (Input.GetMouseButtonDown(0))
68
- {
69
- playerControll.Hp -= 10f;
70
- Debug.Log("-10");
71
- }
72
- }
73
- }
74
-
75
56
  ```

2

スクリプト変更

2021/01/07 09:41

投稿

nine_fish397
nine_fish397

スコア8

title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,9 @@
6
6
  プレイヤー側のコード
7
7
  public class PlayerControll : MonoBehaviour
8
8
  {
9
+ public float Hp = 100f;//スタミナ
10
+
9
- //スプライト番号
11
+ //スプライト番号
10
12
  const int SPR_FALL = 0;
11
13
  const int SPR_JUMP = 1;
12
14
 
@@ -48,26 +50,14 @@
48
50
  Sliderのコード
49
51
  public class SutaminaBar : MonoBehaviour
50
52
  {
51
-
53
+ public PlayerControll playerControll;
52
54
  Slider hpSlider;
53
55
 
54
56
  // Use this for initialization
55
57
  void Start()
56
58
  {
57
-
58
59
  hpSlider = GetComponent<Slider>();
59
-
60
- float maxHp = 100f;
60
+
61
- float nowHp = 100f;
62
-
63
-
64
- //スライダーの最大値の設定
65
- hpSlider.maxValue = maxHp;
66
-
67
- //スライダーの現在値の設定
68
- hpSlider.value = nowHp;
69
-
70
-
71
61
  }
72
62
 
73
63
  // Update is called once per frame
@@ -76,9 +66,10 @@
76
66
  //クリックしたときにhpを10減らす。
77
67
  if (Input.GetMouseButtonDown(0))
78
68
  {
79
- hpSlider.value -= 10f;
69
+ playerControll.Hp -= 10f;
70
+ Debug.Log("-10");
80
- }
71
+ }
81
- }
72
+ }
82
73
  }
83
74
 
84
75
  ```

1

脱字

2021/01/04 14:02

投稿

nine_fish397
nine_fish397

スコア8

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- UnityのSlider を使ってスタミナ機能を作ろうとしています。画面をクリックするとプレイヤーはジャンするのですが、その際にスタミナのゲージが減少し、0以下の場合一定時間経過しないと再度ジャンプできないような仕様で作りたいと思っています。
1
+ UnityのSlider を使ってスタミナ機能を作ろうとしています。画面をクリックするとプレイヤーはジャンするのですが、その際にスタミナのゲージが減少し、0以下の場合一定時間経過しないと再度ジャンプできないような仕様で作りたいと思っています。
2
2
  色々なサイトを参考にして、画面をクリックするとスタミナのゲージが減る仕組みは作れたのですが、ゲージが0以下になった時にプレイヤーがジャンプできない仕様にすることができずにいます。どうすればゲージとプレイヤーを連動させることができますか?
3
3
  お暇があれば助言をいただきたいです。
4
4