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

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

SpriteでMapを動的に表示する(6)

鍵と出口と宝箱表示
f:id:yasu9780:20150618164333p:plain

プレイヤーとスライムは、BlockingLayerで、表示はUnits
鍵は、表示はItemsで、BlockingLayerはなし、

2d RogueLike Tutorialだと、Player.csの中で、アイテムの当り判定してるけど、
同じように次のように判定する。
アイテムには、2Dcolliderを設定し、isTriggerをtrueにしている
(当たり判定はしたいけど、衝突判定はしないので)
キーを取得すると、isKeyフラグが立つので、出口を認識するようになる。

private void OnTriggerEnter2D (Collider2D other)
{
	if(isKey && other.tag == "Exit")
	{
		Debug.Log("get exit");
	}
	else if(!isKey && other.tag == "Key" )
	{
		isKey=true;
		Debug.Log("get key");
		GameObject.Find("Exit").GetComponent<SpriteRenderer>().sprite=mapGen.door[6];
	}
}

鍵を取ると、出口のSpriteのSpriteRenderer.spriteを、ドアが開いたSpriteで置き換えると開いたドアが表示される。
door[]はSpriteをまとめ読みしてるので配列になっている(multipleでGridでsliceしてある)

Sprite[] door = Resources.LoadAll<Sprite>("door");