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


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

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

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

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

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

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

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

■関連記事

【UnityC#講座】無料アセットで一人称視点に剣を振らせる

【UnityC#講座】ボタン押す時間でジャンプの距離変わるようにした

スポンサーリンク

目次に戻る