【UnityC#講座】キューブの周りを張り付いて移動できるようにした



アセットストアで「平成最後応援セール」開催中!
日本時間2月11日9時から22日まで

アセットストア
Asia Pacific Pack

クーポンコード「LNY10PERCENT」ですべてのアセットが10%オフになります。
クーポンコード「LNY30PERCENT」でIconとAsia Pacific Packが30%オフになります。

◆◆◆◆


Unity2018.1.5f1
Windows10

今回はPlayerが立方体のオブジェクトの壁面に張り付いたり底を移動したりするスクリプトを作ったので紹介します。

この動画のように一人称視点です。

■カプセルにスクリプトを入れる

今回もCapsuleをPlayerにしますがCharacterControllerを追加する必要はありません。
今回はスクリプトでCharacterControllerを入れます。
名前は「Player」です。

Hierarchy > Create > 3D Object > Capsule

あと地面になるCubeも出しましょう。

Hierarchy > Create > 3D Object > Cube

そして肝心のスクリプトです。
C#スクリプトでこちらも名前は「Player」です。

スポンサーリンク

Raycastでオブジェクトのどの面にいるか判定し、それぞれBool変数でオンオフを決めています。
うーん、猥雑になってしまい分かりづらい(汗)
この規模でこう猥雑になるともっと大きいプロジェクトだとどれほどのものになるのか恐ろしいですね・・・

WASDで移動し、マウスでカメラを動かします。
壁に張り付いているときはスペースキーで壁を離して落ち、そしてまた押すことで再び張り付くことができます。
底を移動している時にスペースキーを押すと落ちます。

面から面への移動はワープじゃなくて滑らかに移動するようにしたかったのですが今回はここで気力が尽きたり他のことがやりたくなったので終わりにします。
またやる気が戻ったらそこら辺改善したり別のオブジェクトに飛び移れるようにしたいです。

あと一人称視点だと自分の状況が分かりにくいですね。
ここら辺も工夫が必要だと思います。

■背景やオブジェクトに使った無料アセット

金属やガラス、大理石などのマテリアルやオブジェクトが詰まったアセットです。

雲海のスカイボックスが美麗で気に入りました。

今回はこれで終わりです。
お疲れ様でした。

スポンサーリンク

目次に戻る


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください