【Unity】スマートボールぽいものを作ろう! - ③PrefabからInstantiateで動的生成
前回までのあらすじ。
土台と四隅を作りました。
更にそこから、Wallを何本か足し
こんな感じになりました。
それでは今回はボールを飛ばしてみましょう。
まず、下準備としてHierarchyにあるBallオブジェクトを
Resources => Objects にPrefab化しておきます。
そして同じくAssetsツリーにあるScriptsフォルダを開き、右クリック => Create => C#Script を選びファイルを作ります。
名前はShoterとでもつけて下さい。
Shoterファイルをダブルクリックすると、Unity付属のエディタのMonoDevelopが起動します。
そこのUpdate()内を以下のように
※ create_shoter_vec内の座標はボールが出る位置(画像で言う右下の位置)の座標値をいれてください。
これで、ボールの生成メソッドはできました。
次に、このメソッドの呼び出し元を作ります。
ツールバー、GameObject => Create Emptyで空のGameObjectを作って下さい。
名前をMainObjectに変更。
そして、Materialと同じ要領でMainObjectにShoterのスクリプトを追加します。
これで、Hierarchyに配置されているMainObject内のShoterスクリプトのUpdateメソッド内に書いてある左クリックでボールを生成するメソッドが反応するようになりました!
それでは実行してみましょう。
Gameウインドウ内で左クリック連打!
…このようにボールが生成されたでしょうか?
もし生成されない場合は、Prefab化したBallオブジェクトの位置が違う・ボール生成時の座標がズレている などの原因が考えられるので怪しい所を修正していきましょう。
次はプロペラやクギなどの盤面ギミックを作っていきます。
関連記事一覧:
【Unity】スマートボールぽいものを作ろう! - ①RigidbodyとCollider - Exception[0]
【Unity】スマートボールぽいものを作ろう! - ②TextureとMaterial - Exception[0]
【Unity】スマートボールぽいものを作ろう! - ④isTriggerとOnTriggerEnter - Exception[0]