[Unity] スクリプトからMesh、GameObjectを作成しPrefabへ登録する

Pocket

前回の記事でパズルゲームをリリースした事を書いたのですが、そのゲームに使用したメッシュはすべてスクリプトから作成しました。モデリングする能力ないしね!

特に難しいことは無く使用するメソッドさえ覚えれば使えました。メモしておきます。

 

 

MeshをAsset内に保存

Meshの拡張子は「.asset」で良さそう。

 

Mesh付きGameObjectをAsset内に保存

GameObjectの拡張子は「.prefab」で良さそう。

最後行SaveAssetsは超重要らしい。

 

Asset内に保存したPrefab(GameObject)のインスタンスを取得

Resourcesフォルダ以下にあるPrefabのGameObjectを取得できます。

Resourcesフォルダでないとダメなんだろうか。 → http://docs.unity3d.com/ScriptReference/Resources.Load.html

Prefabのインスタンスを取得出来たほうが都合が良い時があるはず。

 

フォルダを作成する

UnityEditor.PrefabUtility.CreatePrefabはフォルダが無いとエラーを返してしまうので、事前にフォルダを作っておく必要があります。

 

Editor専用なので#ifで囲む

これらのコードは実行ファイルをビルドするときにエラーになるので#if #endifで囲む。

 

上記のコードはパズルのピースを作成するのに使用しました。

4角形1種類、3角形4種類の計5種類のGameObjectを生成した時。

puzzle_piece_generate

ペイントツールでピースの絵を作成して、2Dゲームにしても良かったと思うですが3Dでやりたかったんだ。

Pocket

希木小鳥

Diablo1でハクスラの世界に。今はPath of Exileをプレイ中。長くやっていてもNoob属性は常に付いている。そのくらい行き当たりばったり。オタクになれないゲーマー。

You may also like...