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

質問編集履歴

2

サンプルコードに説明を追加しました。サンプルコードに今実装している方法を載せました。

2020/12/26 04:50

投稿

mushipan0929
mushipan0929

スコア56

title CHANGED
File without changes
body CHANGED
@@ -14,9 +14,12 @@
14
14
  4.諦めて全てMonobehaviourを継承させる
15
15
 
16
16
  ### サンプルコード
17
+ 以下のコードは実際のコードではなくサンプルです。
18
+ 変数が1つしかないので単純ですが、実際に実装しようとすると何十にもなってしまうので見た目が良くなくなってしまいます。
19
+
17
20
  UiManager(Uiクラスを管理するクラス)
18
21
  ```C#
19
- public class UiManager
22
+ public class UiManager : Monobehaviour
20
23
  {
21
24
  public EditBattleUi editBattle = new EditBattleUi();
22
25
 
@@ -26,7 +29,7 @@
26
29
  }
27
30
  }
28
31
  ```
29
- EditBattleUi(BattleシーンのUIを管理するクラス)
32
+ EditBattleUi(BattleシーンのUIを管理するクラス、Uiを操作するメソッドが数多く含まれます。)
30
33
  その他にもEditTitleUi, EditResultUiなどがある
31
34
  ```C#
32
35
  public class EditBattleUi
@@ -40,4 +43,36 @@
40
43
  Debug.Log(obj.name);
41
44
  }
42
45
  }
46
+ ```
47
+ 今のところは2番の方式で実装させています。
48
+ ```C#
49
+ public class UiManager : Monobehaviour
50
+ {
51
+ publuc GameObject obj;
52
+ public EditBattleUi editBattle;
53
+
54
+ void Start()
55
+ {
56
+ editBattle = new EditBattleUi(obj);
57
+ editBattle.Hoge();
58
+ }
59
+ }
60
+ ```
61
+ ```C#
62
+ public class EditBattleUi
63
+ {
64
+ // 最初からHierarchy上にあるオブジェクト
65
+ // このオブジェクトを上に挙げた「試したこと」以外で取得する方法があれば知りたいです。
66
+ GameObject obj;
67
+
68
+ public EditBattleUi(GameObject _obj)
69
+ {
70
+ obj = _obj;
71
+ }
72
+
73
+ void Hoge()
74
+ {
75
+ Debug.Log(obj.name);
76
+ }
77
+ }
43
78
  ```

1

サンプルコードを追加しました。

2020/12/26 04:49

投稿

mushipan0929
mushipan0929

スコア56

title CHANGED
File without changes
body CHANGED
@@ -11,4 +11,33 @@
11
11
  1.全てUiManagerに保存し、コンストラクタで使用する変数を全て渡す
12
12
  2.シングルトン化した別のクラスに全て保存し、使うごとに毎回そこから引っ張ってくる
13
13
  3.GameObject.Findで取得する
14
- 4.諦めて全てMonobehaviourを継承させる
14
+ 4.諦めて全てMonobehaviourを継承させる
15
+
16
+ ### サンプルコード
17
+ UiManager(Uiクラスを管理するクラス)
18
+ ```C#
19
+ public class UiManager
20
+ {
21
+ public EditBattleUi editBattle = new EditBattleUi();
22
+
23
+ void Start()
24
+ {
25
+ editBattle.Hoge();
26
+ }
27
+ }
28
+ ```
29
+ EditBattleUi(BattleシーンのUIを管理するクラス)
30
+ その他にもEditTitleUi, EditResultUiなどがある
31
+ ```C#
32
+ public class EditBattleUi
33
+ {
34
+ // 最初からHierarchy上にあるオブジェクト
35
+ // このオブジェクトを上に挙げた「試したこと」以外で取得する方法があれば知りたいです。
36
+ GameObject obj;
37
+
38
+ void Hoge()
39
+ {
40
+ Debug.Log(obj.name);
41
+ }
42
+ }
43
+ ```