【ゲームエンジン】Unityなんでも質問スレpart12at GAMEDEV【ゲームエンジン】Unityなんでも質問スレpart12 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト638:名前は開発中のものです。 23/12/12 00:46:38.09 fxLNnORX.net >>619 ありがとうございます。 確かにその通りに記述したら同じ動作になりました! GameObject型の変数.GetComponent<prefabのクラス名>().Type(5);と記述してたのに クラス名型の変数.Type(5);だけで実行できる様になりました。 もともと宣言は>>523の教えてくださった [SerializeField] GameObject prefab_A; と宣言してインスペクタにprefabのオブジェクトをアタッチして Unityのこういうものだという流れが掴みかけていたのですが >>545さんのやり方で [serializeField] prefabAのクラス名 prefab_A; prefab_Aにprefabのオブジェクトをアタッチしても まったく同じ様に動いてます。 そのことで現在ちょっと戸惑っていまして。 というのも、再生したらどちらでもちゃんとプレハブのオブジェクトが生成されるんですが [SerializeField]にGameObject型で宣言するのと [SerializeField]にプレハブオブジェクトのクラス型で宣言するのとで 結果が同じということ、後者はプレハブのオブジェクトをアタッチしていないじゃないですか? (アタッチされてるのもスクリプトみたいですし) Instantiateの引数にもクラス名しか入れてないですし。 オブジェクト型で作るほうは、クラスもオブジェクト生成もイメージはしやすいですが、 後者はプレハブオブジェクトはそっちのけに感じるのに 前者と同じ様にプレハブのオブジェクトがそこに発生しました。 このふたつの宣言で、なにが起きてうのか解説願いませんでしょうか。 また、同じに見えて、実はなにかが違うのでしょうか? そしてこのふたつのやり方は、状況によって使い分けすべきなんでしょうか? Unityを触ってまだ二ヶ月弱ですが ここをどうしても理解しときたいので、教えて頂けないでしょうか? お願い致します! 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch