[Unity] 簡単にクリックandタップ移動が実装できるNavigationを試してみた
一ヶ月ぶりに3Dの機能に触れたらものすごく便利なものを発見したので、感動ついでに記事にしてみた。
Unityでスマホ向けゲームを作ってると、タップした場所に移動させたいことってけっこーあると思います。
今回はそんなお悩みを簡単に解決してくれる機能のご紹介。
(といっても、その機能を実際に使ってみた場合の紹介ですけど・・・)
私の場合だと、プレイヤーキャラをタップ操作で動かしたかった。
最初こんなん。もちろん、フィールド上からはみ出ないようにもしたい。
最初に思いついたのが、「Rayを投げて、Colliderがアタッチされてるゲームオブジェクトにあたったら、その位置情報を得てそこに移動させよう・・・」。
しかしうまくいかないでござるの巻。
ので、早くもGoogle先生に泣きつく。(その間5分ほど)
私「"Unity タップ操作" でオナシャ・・先生「"Unity3D - Unity クリックした位置にObjectを移動させる - Qiita"」(食い気味)
先人の知恵は偉大であることに感謝して興奮気味に涙ぐみながら、まるぱk・・・丸パクリさせてもらった。(素直)
私の場合は前の記事で紹介したアニメーションも付け加えたかったので、こんなスクリプトになった。
実は、「Vector3.Distance(A, B)」でAB間の距離がとれること、調べてる時に知った。
ちょー便利じゃないですか!早速使ってみました。
そして実際に動作確認してみる。
うん、いい感じ〜♪
ちゃんとアニメーションの遷移もできていますね!
フィールド外をクリックしても移動しないようになっているのが分かります。
(上の映像の水色の部分が移動可能範囲。これもUnity側で自動でやってくれる・・・(;´༎ຶД༎ຶ`) スゲ-! )
そんな便利なNavigation、Navmesh、こんなチンケな使い方ではなく、もっとすげーんです。
参考までに、「unity navmesh」をご覧になれば目からうろこ、頭から脱毛症。(禿げ)
今回はこの記事の紹介がメインでした。(自分の技術は全然書いてない)
===================
この記事を書いた時のバージョン(Mac)
・Unity PersonalEdition 5.0.1f1
===================