Nanashi-soft○プログラマ専用○Unityでゲーム開発○
◇Unityでゲーム開発 -JavaScriptでオブジェクト生成-
最初からシーン内に全てのオブジェクトを配置しておくのではなく,後から生成することはできないか?
そうすれば,必要が無い間はメモリを消費しないのではないか?
というわけで,やってみました
・リソースに Prefab形式(?)でモデルデータを格納する
Project内に Resourcesフォルダが無ければ,Projectタブのすぐ下にある Create→Filderで作成する
Resourcesフォルダをクリックして,Projectタブのすぐ下にある Create→Prefab
例えば PrefabTestと付けたとします
Project内のモデルデータを PrefabTestにドラッグ&ドロップする
Prefabと言うのは,実態の無い単なるリンク扱いになるという意味みたいなので,これでデータが倍増する事は無いと思います
・JavaScriptから呼び出す
いつでも呼び出せます。例えば,1キーを押すと表示されるようにしてみます
var object1 : GameObject;
function Update () {
if(Input.GetKeyUp(KeyCode.Alpha1)){
object1=Instantiate(Resources.Load("PrefabTest", GameObject), transform.position, Quaternion.identity);
}
}
※この場合の1キーはテンキーじゃない方の1です
・JavaScriptから消去する
なぜ,object1をグローバル変数にしたのかと言うと,消去時に使うためです
2キーを押すと消去されるようにしてみます
function Update () {
if(Input.GetKeyUp(KeyCode.Alpha2)){
Destroy(object1);
}
}
・移動や回転させる
Instantiateした object1は,通常のオブジェクトと同じように扱えます
X軸方向に5移動
object1.transform.position = Vector3(5.0, 0.0, 0.0);
Y軸回転
object1.transform.Rotate(0.0, 90.0, 0.0);
○TOP○プログラマ専用○Unityでゲーム開発○



