[過去ログ]
【3Dゲームエンジン】Unity質問スレッド32 (1002レス)
【3Dゲームエンジン】Unity質問スレッド32 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
755: 名前は開発中のものです。 [sage] 2017/12/11(月) 00:11:47.56 ID:SkZjimvo <スクリプトAで、Assets内のプレハブBを、ゲームオブジェクトCとして取得する方法> Scece上に配置したゲームオブジェクトXに、下記のスクリプトAを登録しておきます。 public class A : MonoBehaviour { public GameObject B; // Use this for initialization void Start () { GameObject C = (GameObject)Instantiate(B); } } Inspector上でゲームオブジェクトBを登録できるので、 Assets内のプレハブBを登録しておきます。 「Assetss」を押すと一覧が出ます。 動的にBのインスタンスを生成して、ゲームオブジェクトCとして格納します。 以下、Inspector上で登録しておいたゲームオブジェクトBは、 ゲーム内ではゲームオブジェクトCとして実体化されているので、 移動させたり、回転させたり、いろいろできます。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/755
756: 名前は開発中のものです。 [sage] 2017/12/11(月) 00:30:42.08 ID:SkZjimvo C = (GameObject)Instantiate(B) だと、スクリプトを登録したオブジェクト上に生成されてしまいます。 生成される際の 位置を、Vector3 V = new Vector3(x, y, z) 向きを、Quaternion Q = Quaternion.Euler(angleX, angleY, angleZ) 親を、transform T = parent.transform としたい場合は、 C = (GameObject)Instantiate(B, V, Q, T) とします。 親Tの子として、向きQで、位置Vに、 Bのインスタンスが、オブジェクトCとして生成されます。 BにRigidbodyを登録しておけば、 Rigidbody D = C.GetComponent < Rigidbody2D > によって、CのコンポーネントからRigidbodyを取得して、 変数DにRigidbodyを格納しておくこともできます。 以降は、物理演算ができるようになり、 D.velocity = new Vector3(vx, vy, vz) のようにして速度を変更したりできます。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/756
757: 名前は開発中のものです。 [sage] 2017/12/11(月) 00:39:32.37 ID:SkZjimvo 誤 Rigidbody D = C.GetComponent < Rigidbody2D > 正 Rigidbody D = C.GetComponent < Rigidbody > 普段、2Dばっかりやっているから間違えた・・・ 要するに、 ?Hierarchyになくても、Assetsからでも呼び出せる (GameObject.Findは、Scene内から探すためダメです) ?Staticにしなくても、Inspector上からPrefabを登録できる (Inspector上で設定したかったら「public」です) ?スクリプトを登録する相手は、何でも良い (カメラでも、空のオブジェクトでも・・・) ただ、あるキャラクタから発射するつもりなら、 そのキャラクタにスクリプトを登録しておけば、 発射位置が、そのキャラクタの現在地になります。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/757
800: 名前は開発中のものです。 [sage] 2017/12/11(月) 22:02:19.01 ID:SkZjimvo 詳しい人が降臨しているようなので質問! 角速度 Rigidbody.angularVelocity = new Vector3(a, b, c) による回転を1秒間行った場合の、 向き(角変位) Rigidbody.rotation を、あらかじめ計算でQuaternionを求めておきたいのですが、 Rigidbody.rotation = Quaternion.AngleAxis(angle, axis) で入力する場合、 float angle = いくつ? Vector3 axis = いくつ? に設定すれば良いのでしょうか?? 普段は実際に時間をかけて回転させるのですが、 ショートカット入力によって、瞬間的に向き変更したためです。 普段は速度velocityで移動させていたのを、 瞬間的に位置positionで変位させるのと同じ感じです。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/800
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.032s