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

質問編集履歴

4

プログラム修正

2019/10/26 09:11

投稿

orochinodoppo
orochinodoppo

スコア14

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
-  Enemy enemy;
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

空白追加

2019/10/26 09:11

投稿

orochinodoppo
orochinodoppo

スコア14

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

プログラム追加

2019/10/26 09:08

投稿

orochinodoppo
orochinodoppo

スコア14

title CHANGED
File without changes
body CHANGED
@@ -4,9 +4,56 @@
4
4
  例えば、プレイヤーと敵が存在していて、プレイヤーが敵を攻撃したとします。
5
5
  プレイヤーが敵を攻撃をする処理はプレイヤークラスに記述すると思いますが
6
6
  敵のHPを減らす処理や敵のHPが0になったら消滅させる処理はどこに書けばいいのかわからなくなります。
7
- プレイヤーが攻撃したからプレイヤークラスに記述するのか
7
+ 案① プレイヤーが攻撃したからプレイヤークラスに記述するのか
8
- 敵のHPや存在に関するから敵クラスに記述するのか
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

タイトル

2019/10/26 09:02

投稿

orochinodoppo
orochinodoppo

スコア14

title CHANGED
@@ -1,1 +1,1 @@
1
- オブジェト指向?よる質問
1
+ 処理をどのラス記述すればいいかわからない
body CHANGED
File without changes