オブジェクトを選択し、マウスで移動させる
マウスでユニットを動かせるようにできたのでメモ
NavMesh(自動経路設計)
Ethan
Ethan(動かしたい人)にコンポーネントのNavMeshAgentをつける
WindowのNavigationを開き、Bakeをする
- Bakeで移動可能な場所を自動的に設定してくれる
- Agentのタイプごとにいろいろ設定できる
- 障害物にはオブジェクトのstaticのNavigatoin Staticにチェック
コンポーネントの設定
- Auto Brakingは目的地に近づくとゆっくりになるらしい
- QualityをNoneにするとAgent同士の衝突を避けられる
- Priorityが高い奴は低い奴を押しのけて進める
- Auto Repathは曲がり角とかに行く度再度経路を計算してくれる(?)
あとは目的地(destination)を指定してあげるだけで勝手に障害物を避けながら移動してくれる
using UnityEngine.AI;
//目的地を指定する
オブジェクト.GetComponent<NavMeshAgent>().destination = 目的地の座標;
次にマウスでクリックした地点の座標を読み取り、そこにEthanを移動させる
Ray(マウスの座標)
Rayでマウスで右クリックした場所の座標を取得
destinationに代入
次に左クリックしたオブジェクトの目的地を指定する
ユニットを取得
面倒なので丸ごとコピペしたから汚いけど
頑張って読んでみてw(未来の自分へ)
何をやってるかというと
- 左クリックしたら範囲を指定できる(ドラッグの開始地点から終了地点の大きさの直方体をつくる)
- そのオブジェクトにTriggerをつけておくとTriggerに引っかかったオブジェクトを取得できる
- 右クリックで移動させる
- Units(Unitをいっぱい入れる) > EthanUnit(Unitタグ) > Ethan * 3っていうhierarchy
https://twitter.com/nekusasuyuueigo/status/951718904883167232
次からは綺麗なコード、コメントもちゃんと書いて読み返しやすいようにする