ということで進捗。[WebGL版]
マウス移動
2Dから2.5Dへの地味~な移植。
マウスクリック時の座標と、現在のマウス座標の差分をベクトルに変換、
角度によって与える速度を分岐…みたいな感じ。
数学苦手なんでちょうggる
上下左右移動のときに、ナナメ移動より早く移動できてしまう問題、
ナナメの判定がちょっと甘め(上下左右に移動するつもりでもナナメに反応しがち)な問題をついでに潰しておく。
クリックアンドホールドは別の動きに使いたいからぷにコン方式だけど、
NavMesh使えるなら、MMOでよくある移動形式のほうが良かったかな…。
階段と壁
段差が0.5Heightは乗り越えできるように。1Heightは壁扱い。
特にスクリプト組むこともなく、NavMeshの設定で解決。
橋構造のソーティングも問題なさげ。
…もっと早く課金しとけばよかった…。
以下、実装メモ。
通り抜けができたりできなかったりするタイル
ナビゲーションのエリア設定をした上で、エージェントのエリアマスク設定をすればよさげ。
応用して、NPCとかのランダム移動範囲とかもこれで作れそう。
精霊アクション
発動時に各精霊固有のRayを飛ばす。
受け側のタイルなりオブジェクトなりに、
・接触
・クリック
・各精霊
の反応を設定するスクリプトをアタッチする。
Rayに当たったオブジェクトの反応を拾ってきて、イベント実行する感じ。
通常
前方にRayを飛ばす。反応に設定されたイベントを実行。
ジン
地面にRayを飛ばす。
NavMeshAgentの移動を切って、反応に設定された座標へTweenでジャンプ、完了後移動再開。
カワズ
前方の地面にRayを飛ばす。
ジンと同様の処理をしたのち、エリアマスクの設定から水を通れるようにする。
上陸の処理はどうするか…。
境界線の地面の接触反応にエリアマスクの設定(水通行解除)を入れるとかか。

