前提・実現したいこと
やりたいことしてはマップ上でキャラクターを自動で徘徊させたいと考えています。
ただマップが複雑な形なのでGameObjetをチョコチョコ置いて、地点Aに着いたら地点Bへまたそこから地点Cへ。。
という感じにしようと思っています。
やってみたこと
C#
1public class JarasyController: MonoBehaviour 2{ 3 public float speed; 4 GameObject marker1; 5 GameObject marker2; 6 GameObject marker3; 7 GameObject marker4; 8 9 void Start() 10 { 11 marker1 = GameObject.Find("Marker1"); 12 marker2 = GameObject.Find("Marker2"); 13 marker3 = GameObject.Find("Marker3"); 14 marker4 = GameObject.Find("Marker4"); 15 } 16 17 void Update() 18 { 19 transform.position = Vector3.MoveTowards(transform.position, marker1.transform.position, speed * Time.deltaTime); 20 if (marker1.transform.position == transform.position) 21 { 22 transform.position = Vector3.MoveTowards(transform.position, marker2.transform.position, speed * Time.deltaTime); 23 } 24 } 25}
・そのほか
当たり判定が出たら次の地点へMoveToWardsで移動
にしてみるもなぜか次の地点へはいかずその場で固まったままでした。
当たった場合ログを出すようにしてみると、ログは問題なく出ました
NavMeshも試みたんですがマップはTileMapを使用せずSpriteRendererなので今回は出来なさそうでした。
もしSpriteRendererで可能であれば教えていただきたいです
###まとめ
他に何か徘徊させることができるアセットなどがあれば教えていただきたいです。
ChinemachineのDollyCartのようなもので,2Dで使えるものってないんでしょうか!
GameObjectを置いてくのは少し面倒なもので・・
いや, marker1, marker2, marker3, marker4 という(名称末尾に番号が付いた)奴らはメンバとして存在していることが読み取れるのですが,
末尾に番号がついていない marker という奴は提示コードからは正体不明に見えるのです.
marker2, marker3, marker4 というやつらは,実装している処理とは無関係なのですか?
(巡回地点は marker1~marker4 ではなくて,それらとは別の marker という奴なのですか?)
ごめんなさい。2をかき忘れていたみたいです。marker2としてみていただければ
回答3件
あなたの回答
tips
プレビュー