AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

ネクロダンサーっぽいのを作ってみる(2)

f:id:yasu9780:20150621195903j:plain

敵に対して攻撃できるようになりました。
攻撃するとコインに変わるので拾うとcoinが増えます。

 ただ、作り方で問題が。Raycastしないで配列でやってるんですが、敵を攻撃とかコインを拾う場合、対象のGameObjectを特定する必要があります。
 Raycast飛ばせないので、座標からすべてのGameObjectをループで調べるのもアホみたいだし。
 とりあえず、GameObjectの二次元配列にポインターを保存しておいて、座標からすぐ引けるようにしました。
 これってどうなんだろう? raycastの方がいいのかなあ? 悩むなあ。

 敵のターンで移動後にターンをプレイヤーに戻すんですが、敵が複数いる場合は
 すべての敵が移動するまでターンは移せないので、どうやって監視するかな?
 と考えて、2D RogueLikeのソースを確認すると、GameManagerからループ回してました。
 なので、真似して以下の様な感じに。
 changeLightFloor()は、ターンが変わるごとに床が光る色を変える処理。

IEnumerator MoveEnemies()
{
	yield return new WaitForSeconds(turnDelay);
	if (enemies.Count == 0) 
	{
		yield return new WaitForSeconds(turnDelay);
	}
	for (int i = 0; i < enemies.Count; i++)
	{
		if( enemies[i]==null ) continue;
		nEnemy tmp = enemies[i].GetComponent<nEnemy>();
		tmp.EnemyMove ();
		yield return new WaitForSeconds(tmp.moveTime);
	}
	turn = true;
	isMove=false;
	changeLightFloor();
}