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



【Unityアセットストア公式】初購入特別キャンペーン

期間:日本時間 10月31日 17:00時まで
対象:アセットストアで初購入のユーザー限定
詳細:Unityアセットストアで初めてアセットを購入いただく方限定、アセット全品20%OFF


◆◆◆◆


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#講座】ボタン押す時間でジャンプの距離変わるようにした

スポンサーリンク

目次に戻る


コメントを残す

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

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