鍵と出口と宝箱表示
プレイヤーとスライムは、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");