■ このスレッドは過去ログ倉庫に格納されています
【ゲームエンジン】Unity初心者質問スレBuild4
- 235 :弟子 ◆rZPPjYuxmQ :2020/04/22(水) 13:37:39 ID:kYRnjPG5.net
- >>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…
総レス数 1001
338 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★