[過去ログ]
【ゲームエンジン】Unity初心者質問スレBuild4 (1002レス)
【ゲームエンジン】Unity初心者質問スレBuild4 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
230: 名前は開発中のものです。 [sage] 2020/04/22(水) 11:29:44.07 ID:VQM8R+FC プレハブについての質問です。 すでに存在するオブジェクトに子としてプレハブを複製しようとしたときの座標がうまく設定できません。 スクリプトではこんな感じ記載しています ------------ ParentObject = GameObject.Find("ParentCanvas"); //すでに用意しているキャンパス var parent = ParentObject.transform; // プレハブをGameObject型で取得 GameObject obj = (GameObject)Resources.Load("Prefab"); // プレハブを元に、インスタンスを生成、 Instantiate(obj, new Vector3(1.0f, 1.0f, 0.0f);, Quaternion.identity, parent); //ローカルポジションの設定 obj.transform.localPosition = new Vector3(100.0f, 100.0f, 0.0f); ---------- 結果として子としてプレハブは複製できていますが、座標がローカルではなくワールド座標のほぼ原点に生成されてしまいます。 親のローカル座標に設定するにはどうしたらよいでしょうか? InstantiateのVectorをローカル座標として設定したい状態です。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/230
231: 名前は開発中のものです。 [sage] 2020/04/22(水) 13:03:53.31 ID:UU/VXGyk >>230 最後のlocal posで、100じゃなくて、0.0.0でいいんじ「ないの? http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/231
233: 名前は開発中のものです。 [sage] 2020/04/22(水) 13:29:09.78 ID:sLe2iYSZ >>230 Instantiate(obj, parent.position + new Vector3(1.0f, 1.0f, 0.0f);, Quaternion.identity, parent); http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/233
235: 弟子 ◆rZPPjYuxmQ [] 2020/04/22(水) 13:37:39.18 ID:kYRnjPG5 >>225 https://i.gyazo.com/207b420398965fd9452cfd022b133773.png まずこれがオブジェクトにスクリプトをアタッチし、public変数に設定した例 https://i.gyazo.com/f688367c978ac3282ae36a41985ce9f7.png こちらがProject欄にあるスクリプトのPublic変数、ここへは「シーン上」のオブジェクトは設定できない https://i.gyazo.com/0294932ec2ec31d71627a8f9e8bbaa0b.png こちらが同じスクリプトにPrefabを設定した例、Prefabなら設定できる まずpublic変数は外部からの設定が出来る変数で、シーンのobjectにアタッチすれば、インスペクタで設定できる。 prefabというのは特殊なオブジェクト。これはシーン上に即反映できるものでシーンに無いスクリプトにもアタッチできる。 という事。 違いは、シーン上にあるものか、そうでないか。シーン上のobjectはProject欄には置けないですうよね? それがPrefabという事。Prefabの詳細については、公式の説明参照で。 >>230 公式の説明見ると分かると思うけど https://docs.unity3d.com/ja/current/ScriptReference/Object.Instantiate.html (2番目の例が分かりやすい) InstantiateはGameObjectを返すので、位置など設定する場合には、そのオブジェクトを指定する GameObject obj = (GameObject)Resources.Load("Prefab"); Instantiate(obj, new Vector3(1.0f, 1.0f, 0.0f);, Quaternion.identity, parent); obj.transform.localPosition = new Vector3(100.0f, 100.0f, 0.0f); この場合、「obj 」はResourcesにあるObjectで、Instantiateで生成した物ではないです だからobj.transform.localPositionをしても意味が無い。 公式の例のように返りを指定して clone = Instantiate(projectile, transform.position, transform.rotation); それの値をいじります。 clone.velocity = transfor… http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/235
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.029s