【Unity】部屋の間取りを作るツールを開発します!Enumを使って楽々モード管理!

 どうも!新入社員のタケです!


今日は朝のツイートの通り、マウスでドラッグして壁を作るツールを作っていました!


いずれはIt's My Houseに組み込む予定になります!

壁まで作れて家具も置けたら完璧に家を1から作れるので、とても自由度が上がりますね…!


まずはクリックしたところにうまく配置してくれない問題ですが、まずはガイドがないのが使いづらいと思いました。

グリッドでスナップはできているのですが、やっぱりどこに置かれるか表示してくれたほうが親切なので作りました。


壁を置くときは画面を押して、伸ばしたいところまで伸ばしてからから離すと設置されます。

なので、壁を設置中ではない時にマウスにくっついて常に表示するようにします。


設置中以外は黄色い棒がついてきますね!できました!


これで使いやすくはなった…のですが、対角線を使ってロの字に壁を配置できるボックスモードが欲しいと言われたので実装していきます。

今回はEnumという機能を使って実装していきます。


Enumとは何か?ということですが、すごく簡単に言うとドロップダウンメニューです。


LineとBoxを切り替えて、いままでの線を引く操作も可能にしながら箱を描くこともできるようにしておきます。

まあ正直モード1、モード2みたいに数字でやってもいいのですが、利点があります。

EnumはSwitch文と非常にシナジーが合います。

コードの見た目がとーってもわかりやすい!


このようにChangeModeの部分にMode.●●と入っていくのであとはcase Mode.●●で示していけば

あ、こっちがLineの処理なんだなとか、Boxの処理なんだなと分かりやすいです。


enumの良いところはエラーの原因が分かりやすいということもあります。

必ずEnumの中で指定した文字列…今回の場合だったらLineかBoxしか受け付けず、スペルが間違っていたらそんなものないです!というエラーが

ちゃんとでてきてくれます。


細かいところがエラーチェックが楽になるので助かりますね!



次の記事ではロの字の壁の作り方を詳しく紹介します。

考え方がすごい数学っぽかったので楽しかったのです…!


--------------------------------------------------------------------------------

シェルパでは、3DCGや建築パースはもちろん
VRやARアプリの開発も行っています!
新しいことに興味のある方はきっと楽しめると思います!
新人研修も充実していて初心者でも3DCG経験者でも安心!

株式会社シェルパ
【福岡本社】
〒810-0042 福岡県福岡市中央区赤坂1丁目13-10赤坂有楽ビル7F 
【東京オフィス】
 〒101-0041 東京都千代田区神田須田町2丁目13-1YKS黒田ビル5F
TEL 092-717-6800 / FAX 092-717-6801

--------------------------------------------------------------------------------

コメント