C#スクリプトからProjectのPrefabをHierarchyに入れるにはどうすれば良いのでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
これで合ってるのか分からない上に
ちょっと長ったらしい回答になったので参考程度にどうぞ
何らかのオブジェクトに付けたスクリプトにprefabを指定し、そのprefabを生成させるのであれば
negitamaさんの通りInstantiateで出来ます
例
C#
1public GameObject inu; 2public GameObject neko; 3 4void Update() 5{ 6 if (Input.GetKeyDown(KeyCode.A)) 7 { 8 Instantiate(inu, new Vector3(0, 10, 20), Quaternion.Euler(1, 2, 3)); 9 } 10 if (Input.GetKeyDown(KeyCode.B)) 11 { 12 Instantiate(neko, transform.position, Quaternion.identity); 13 } 14}
C#
1Instantiate(生成したいオブジェクト, 生成位置, 生成時の回転, 親にしたいオブジェクト);
生成したいオブジェクトは、
C#
1public GameObject 好きな名前(object1等);
と書けばInspectorで表示されるので、そこにprefabを指定してください。
生成位置には
new Vector3(x, y, z)と書くか、
objee.transform.positionと書けばobjeeが存在する位置に生成されます(objeeをpublic等で指定する必要あり)
生成時の回転には
Quaternion.Euler(x, y, z)と書くか、
objee.transform.rotationと書けばobjeeの回転に合わせて生成されます(objeeをpublic等で以下略
別に気にしない場合はQuaternion.identityで
親にしたいオブジェクト
特に指定しない場合は書かなくていいです
objee.transform.transformと書けばobjeeの子として生成されます(objeeを以下略
生成位置、生成時の回転、親にしたいオブジェクト を別に指定しない場合
Instantiate(生成したいオブジェクト);でいいです
なお、objeeは適当につけた名前なので特に意味はないです。
投稿2018/05/02 11:33
編集2018/05/03 02:06退会済みユーザー
総合スコア0
0
Instantiate を使います。
コードの例です。
C#
1using UnityEngine; 2 3public class Spawner : MonoBehaviour 4{ 5 // インスペクターから設定する 6 [SerializeField] GameObject spawnObject; // 生成するオブジェクトのプレハブ 7 [SerializeField] Transform spawnPos; // 生成する場所 8 9 10 private void Update () 11 { 12 // マウスの左クリック 13 if ( Input.GetMouseButtonDown ( 0 ) ) 14 { 15 Instantiate ( spawnObject, spawnPos.position, spawnPos.rotation ); 16 } 17 } 18}
投稿2018/05/02 10:55
編集2018/05/02 11:21総合スコア943
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/03 06:34