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

回答編集履歴

1

余談追記

2019/06/16 06:22

投稿

sakura_hana
sakura_hana

スコア11429

answer CHANGED
@@ -22,4 +22,12 @@
22
22
  **これは通常の参照型の変数と何ら変わりません。**
23
23
  (`public GameObject enemyObj;`と同じようなものである、ということ)
24
24
 
25
- なのでインスペクター上で設定せず、他スクリプトからの設定も無ければ、enemyDataはnullのままであり、ShowScriptableObjectDataメソッド内のDebug.Logはエラーになります。
25
+ なのでインスペクター上で設定せず、他スクリプトからの設定も無ければ、enemyDataはnullのままであり、ShowScriptableObjectDataメソッド内のDebug.Logはエラーになります。
26
+
27
+ ---
28
+
29
+ とても余談ですが、MonoBehaviourを継承したクラスもnew出来ません。
30
+ 「そのクラスが付与されているGameObjectが生成された瞬間」or「`AddComponent`メソッドによりGameObjectに付与された瞬間」にインスタンス化される為です。(内部的にはnewされていることに違いはありませんが、自分でnewしようとすると警告を出してくると思います)
31
+ Unity(のMonoBehaviour)はそういうもの、という認識でいいと思います。
32
+
33
+ これらの継承が無いクラスのインスタンスを作りたければnewする必要があります。