質問編集履歴
3
文とscript追加
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
スクリプト変更
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
|
-
|
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
|
-
|
69
|
+
playerControll.Hp -= 10f;
|
70
|
+
Debug.Log("-10");
|
80
|
-
}
|
71
|
+
}
|
81
|
-
}
|
72
|
+
}
|
82
73
|
}
|
83
74
|
|
84
75
|
```
|
1
脱字
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
|
|