いま、Unityでローグライクゲームを製作しております。
その際に、敵の行動として障害物を避けつつ最短距離でプレイヤーに近づくような処理を用いりたいのですが
自分の知識ではどう行えばいいのか全く分からず、右記サイトを参考にしても全く分かりませんでした。 こちら
今は簡易的に、障害物がない状態でXとYどちらが遠いか判断し、
Xが遠いかったらX+1、Yが遠かったらY+1、という風に近づけています。
アルゴリズムでも何でもいいので知識をくれたらいいなと思っています。
こんな変な質問で申し訳ありません。
ご回答お待ちしております。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class AStar : MonoBehaviour 6{ 7 8 bool roadPass; 9 public int[,] charaPos; 10 11 void Start() 12 { 13 charaPos = new int[GameController.Instance.maxHeight, GameController.Instance.maxWidth]; //マップ探索用の二次元配列 14 15 for (int i = 0; i< GameController.Instance.mapTilesBox.GetLength(0); i++) 16 { 17 for (int j = 0; j< GameController.Instance.mapTilesBox.GetLength(1); j++) 18 { 19 if (GameController.Instance.LayerName(i, j) == "Obstacle") //移動不可能な場所は‐1 20 { 21 charaPos[i, j] = -1; 22 } 23 else //0で初期化 24 { 25 charaPos[i, j] = 0; 26 } 27 } 28 } 29 30 charaPos[GameController.Instance.enemyPosition.x, GameController.Instance.enemyPosition.y] = 1; //敵のスタート地点を1とする 31 32 } 33}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/21 19:30
2018/03/21 23:03 編集
2018/03/22 00:14
2018/03/22 00:47
2018/03/23 04:58
2018/03/23 07:59 編集
2018/03/24 01:16
2018/03/24 04:01