質問編集履歴
4
プログラム修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,9 +9,10 @@
|
|
9
9
|
案③ それともまた別のクラスを用意するのか
|
10
10
|
ちょっと伝わりにくいかもしれません。すみません。
|
11
11
|
|
12
|
+
```
|
12
13
|
// プレイヤークラス
|
13
14
|
public class Player : MonoBehaviour {
|
14
|
-
|
15
|
+
Enemy enemy;
|
15
16
|
SystemManagement system;
|
16
17
|
|
17
18
|
void Start() {
|
@@ -35,7 +36,9 @@
|
|
35
36
|
system.attack(enemy);
|
36
37
|
}
|
37
38
|
}
|
39
|
+
```
|
38
40
|
|
41
|
+
```
|
39
42
|
// 敵クラス
|
40
43
|
public class Enemy : MonoBehaviour {
|
41
44
|
public int hp = 10;
|
@@ -47,7 +50,8 @@
|
|
47
50
|
}
|
48
51
|
}
|
49
52
|
}
|
50
|
-
|
53
|
+
```
|
54
|
+
```
|
51
55
|
// システムマネジメントクラス
|
52
56
|
public class SystemManagement : MonoBehaviour {
|
53
57
|
public void attack(Enemy enemy) {
|
@@ -56,4 +60,5 @@
|
|
56
60
|
Destroy(enemy.gameObject);
|
57
61
|
}
|
58
62
|
}
|
59
|
-
}
|
63
|
+
}
|
64
|
+
```
|
3
空白追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
// プレイヤークラス
|
13
13
|
public class Player : MonoBehaviour {
|
14
|
-
Enemy enemy;
|
14
|
+
Enemy enemy;
|
15
15
|
SystemManagement system;
|
16
16
|
|
17
17
|
void Start() {
|
2
プログラム追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,9 +4,56 @@
|
|
4
4
|
例えば、プレイヤーと敵が存在していて、プレイヤーが敵を攻撃したとします。
|
5
5
|
プレイヤーが敵を攻撃をする処理はプレイヤークラスに記述すると思いますが
|
6
6
|
敵のHPを減らす処理や敵のHPが0になったら消滅させる処理はどこに書けばいいのかわからなくなります。
|
7
|
-
|
7
|
+
案① プレイヤーが攻撃したからプレイヤークラスに記述するのか
|
8
|
-
|
8
|
+
案② 敵のHPや存在に関するから敵クラスに記述するのか
|
9
|
-
|
9
|
+
案③ それともまた別のクラスを用意するのか
|
10
|
+
ちょっと伝わりにくいかもしれません。すみません。
|
10
11
|
|
12
|
+
// プレイヤークラス
|
13
|
+
public class Player : MonoBehaviour {
|
14
|
+
Enemy enemy;
|
15
|
+
SystemManagement system;
|
16
|
+
|
17
|
+
void Start() {
|
18
|
+
enemy = GameObject.Find("Enemy").GetComponent<Enemy>();
|
19
|
+
system = GameObject.Find("SystemManagement")
|
20
|
+
.GetComponent<SystemManagement>();
|
21
|
+
}
|
22
|
+
|
23
|
+
// ボタンクリックしたら実行される
|
24
|
+
void onClick() {
|
25
|
+
// 案①
|
26
|
+
enemy.hp = enemy.hp - 5;
|
27
|
+
if (enemy.hp < 0) {
|
28
|
+
Destroy(enemy.gameObject);
|
29
|
+
}
|
30
|
+
|
11
|
-
|
31
|
+
// 案②(enemyクラスでHPが0以下になったら消滅する。)
|
32
|
+
enemy.hp = enemy.hp - 5;
|
33
|
+
|
34
|
+
// 案③
|
35
|
+
system.attack(enemy);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
// 敵クラス
|
40
|
+
public class Enemy : MonoBehaviour {
|
41
|
+
public int hp = 10;
|
42
|
+
|
43
|
+
void Update() {
|
44
|
+
// 案②
|
45
|
+
if (hp < 0) {
|
46
|
+
Destroy(this.gameObject);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
12
|
-
|
51
|
+
// システムマネジメントクラス
|
52
|
+
public class SystemManagement : MonoBehaviour {
|
53
|
+
public void attack(Enemy enemy) {
|
54
|
+
enemy.hp = enemy.hp - 5;
|
55
|
+
if (enemy.hp < 0) {
|
56
|
+
Destroy(enemy.gameObject);
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
1
タイトル
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
処理をどのクラスに記述すればいいかわからない
|
body
CHANGED
File without changes
|