重くなるUnityを使う 21 「ビルディングス6」
今回は細かい設定と、Input(仮)を追加します。
まずHeyas.csを。
新しく柱を足して、それに合わせて壁と一緒に部屋の形にしました。また、ドアと窓を足しました。ただ、見た目が同じなのでくっついていて何も見えません。
このように作ったHeyaをPrefabというものに追加したいと思います。PrefabとはGameObjectの雛形で指定した形の物を生成できるものです。複雑な形をしたものを作ることが出来ます。
Unityに戻って、Assets→Create→Prefabをします。するとProjectに新しいPrefabが作られます。名前は、SimpleHeyaなどにしましょう。
このPrefabにObjectを足したいと思います。追加するObjectをPrefabにドラッグ(マウスで持っていく)します。こうすることでPrefabにそのObjectが追加され、またそのObjectはHierachyで青色に表示されます。
今回はHeya_1をプレハブに追加しました。
次に新しくGameObjectを作ります。そして、新しくScriptを作ります。部屋の作成をすると思うので、CreateHeya1にします。
中は、if()でInput.GetKeyDownを使っています。これはInputクラス(ユーザーからの入力を読み取るクラス)のGetKeyDown(KeyCode key)(キーボードなどからの読み取り)です。KeyCode.alpha1で1ボタンを設定します。
そして、Instantiateは指定したObjectを生成(クローンです)することが出来ます。引数はobject、TransformのPositionとRotationです。
ScriptをGameObjectに入れて、値の「Heya Pre」にさっきのPrefabをドラッグします。すると、SimpleHeyaが適用されました。
そうすると要らなくなるものが有ります。まずHierachyのHeya_1はかぶるので消します。また、思い切ってHeya_1.csとの関わりも切ります。PrefabからScriptを消します。Prefabの形は残るので動作は変わらない(はず)です。
これで実行すると、
と、何も最初は出てきません。しかし1ボタンを押すと、、、
と、白い部屋が出来ました。