回答編集履歴

3

修正

2017/12/19 04:23

投稿

IShix
IShix

スコア1724

test CHANGED
@@ -74,7 +74,7 @@
74
74
 
75
75
  ###最後に
76
76
 
77
- Unityは自身でnewしなくてもインスタンスが生成されるのでそこが難しく感じたのかなと思い今回の回答を考えました。実は今回1つ大きな間違いがあります。それは、Hierarchy上に無くてもコード上でMonoBehaviourが継承されていたり参照するUnity APIをはすべてインスタンスとういことです。実はHierarchy上にあるかないかは関係ないのです。なぜスクリプト上ではなくHierarchy上で考えてほしいかと申しますと、2つ目の**Hierarchy上からアタッチされているかいないか**があるからです。
77
+ Unityは自身でnewしなくてもインスタンスが生成されるのでそこが難しく感じたのかなと思い今回の回答を考えました。実は今回1つ大きな間違いがあります。それは、Hierarchy上に無くてもコード上でMonoBehaviourが継承されていたり参照したUnity APIをはすべてインスタンスとういことです。Hierarchy上にあるかないかは関係ないのです。なぜスクリプト上ではなくHierarchy上で考えてほしいかと申しますと、2つ目の**Hierarchy上からアタッチされているかいないか**があるからです。
78
78
 
79
79
 
80
80
 

2

修正

2017/12/19 04:23

投稿

IShix
IShix

スコア1724

test CHANGED
@@ -64,9 +64,25 @@
64
64
 
65
65
 
66
66
 
67
+ ###スクリプトで考えてみる
68
+
69
+ MonoBehaviourはnewできません。理由はUnityが自動でnew(インスタンス化)するからです。
70
+
71
+ やってみると分かるのですが、Hierarchy上ではMonoBehaviourを継承したクラス以外アタッチできません。ここからHierarchy上のものはすべてインスタンスということがわかります。
72
+
73
+
74
+
67
75
  ###最後に
68
76
 
69
- 今回は、Unityインスタンスに焦点絞っ内容です。C#なのでちろん自身クラスを書いてnewればインスタンスですし、ラグインどを利用た際外部から見ると静的クラスだけど内部的にはインスンスを生成しているなどもあるのでそういったものはコードを確認するしないです。
77
+ Unity身でnewしなくてもインスタンスが生成されるのでそこが難しく感じたのかなと思い今回の回答考えまし。実は今回1つ大きな間違いがあります。それは、Hierarchy上に無くてコード上MonoBehaviourが継承されていたり参照るUnity APIをはすべてインスタンスとういことです。実はHierarchy上にあるかないかは関係ないのです。なぜスクリト上ではくHierarchy上で考えてほと申しますと、2つ目の**Hierarchy上かッチされているかいいか**があるかです。
78
+
79
+
80
+
81
+ **「Hierarchy上に存在するまたはアタッチする=newされメモリ上に展開される」**ということなので、あまり使わないものをアタッチしていると知らないうちにメモリに大きな影響を与えていることがあります。今回のことを理解していると「よく使うからHierarchy上にアタッチしておこう」や「チュートリアルは1度しか使わないからResources.loadで読み込もう」など前もってメモリに優しい設計ができるからです。
82
+
83
+
84
+
85
+ 長々とすみません。以上です。
70
86
 
71
87
 
72
88
 

1

修正

2017/12/19 04:22

投稿

IShix
IShix

スコア1724

test CHANGED
@@ -14,13 +14,11 @@
14
14
 
15
15
  これでUnityが自動的に行うインスタンスの大体を理解できると思います。
16
16
 
17
-
18
-
19
17
  それを考慮して該当コードを考えてみるとこんな感じです。
20
18
 
21
19
 
22
20
 
23
- ###GameObject.Find()はHierarchy上のオブジェクトを参照するコードなので参照できるオブジェクトはすべてインスタンス
21
+ ###GameObject.Find()はHierarchy上のオブジェクトを参照するメソッドなので参照できるオブジェクトはすべてインスタンス
24
22
 
25
23
  ```C#
26
24