###前提・実現したいこと
見慣れないInstantiateのコードを見たので、教えていただきたいです。
###該当のソースコード
C#
1var test = Instantiate( Resources.Load<TestComponent>( "TestComponent" ) );
まず、Resources.Loadのコードなんですが、ジェネリックに関するマニュアルが見つかりませんでした。
このようなResources.Loadの書式のマニュアルがあれば教えていただきたいです。
これは、指定したゲームオブジェクトの指定したコンポーネントを返しているということでしょうか?
Resources.Loadでコンポーネントを取得していた場合、Instantiateの引数にコンポーネントを与えると、
どのような処理となるのでしょうか?
Instantiateの引数にコンポーネントを与えると、そのコンポーネントがアタッチしているゲームオブジェクトを複製して、戻り値は、その引数に与えたコンポーネントを取得しているように見えましたが、合っていますか?
C#
1MyCube mycube = GameObject.Find ("Cube").GetComponent<MyCube> (); 2var mycube2 = Instantiate(mycube);
また、不思議に思えたのは、シーン上にCubeとSphereのゲームオブジェクトを用意して、
その両方にMyCubeコンポーネントをアタッチして、上記コードを実行すると、
ちゃんとCubeの方のゲームオブジェクトが複製されたことです。
MyCubeコンポーネントは、Sphereのゲームオブジェクトにもアタッチされてるので、
Sphereのゲームオブジェクトが複製されてもおかしくはないはずなのですが、
ちゃんとコンポーネント取得元のゲームオブジェクトのCubeが複製されるのは何故なのでしょうか?
上記のコードで言うと、mycubeがCubeにアタッチしているという情報を持っているのでしょうか?
その場合、mycubeからアタッチ先のゲームオブジェクトを取得するコードを教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/28 15:35
2017/08/29 01:41
退会済みユーザー
2017/08/29 17:03 編集