すぐに固まるパソコンを使う。

すぐに固まるパソコンを使って色々します(実はそんなすぐでもない)。基本的にプログラミング系が多いです。たまに違うことします。

Immediately Freeze!

重くなるUnityを使う 21 「ビルディングス6」

今回は細かい設定と、Input(仮)を追加します。

まずHeyas.csを。

 

gist.github.com

 新しくを足して、それに合わせて壁と一緒に部屋の形にしました。また、ドアと窓を足しました。ただ、見た目が同じなのでくっついていて何も見えません。

 

このように作ったHeyaPrefabというものに追加したいと思います。PrefabとはGameObjectの雛形で指定した形の物を生成できるものです。複雑な形をしたものを作ることが出来ます。

 

Unityに戻って、Assets→CreatePrefabをします。するとProjectに新しいPrefabが作られます。名前は、SimpleHeyaなどにしましょう。

このPrefabObjectを足したいと思います。追加するObjectPrefabにドラッグ(マウスで持っていく)します。こうすることでPrefabにそのObjectが追加され、またそのObjectはHierachyで青色に表示されます。

今回はHeya_1をプレハブに追加しました。

 

次に新しくGameObjectを作ります。そして、新しくScriptを作ります。部屋の作成をすると思うので、CreateHeya1にします。

gist.github.com

中は、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の形は残るので動作は変わらない(はず)です。

 

これで実行すると、

f:id:norlself66:20150325223641p:plain

と、何も最初は出てきません。しかし1ボタンを押すと、、、

f:id:norlself66:20150325223714p:plain

と、白い部屋が出来ました。