ºÇ½ª¹¹¿·¡§ orika_ex_miyako 2024ǯ01·î03Æü(¿å) 19:27:16ÍúÎò
¡¡¥³¥é¥¤¥À¡¼¤È OnTriggerStay2D ¤È Exit2D ¤ò³èÍѤ·¡¢¥³¥é¥¤¥À¡¼ÆâÉô¤Ë¤¤¤ë¾ì¹ç¡¢¥¢¥µ¥¤¥ó¤µ¤»¤Æ¤¤¤ë²èÁü¤Îɽ¼¨Í¥Àè½ç°Ì¤è¤ê¤â¥×¥ì¥¤¥ä¡¼¤ÎÍ¥Àè½ç°Ì¤ò²¼¤²¤ë¤³¤È¤Ç¡¢
¥È¥ó¥Í¥ëÆâ¤ä¡¢·úʪÆâÉô¤Ë¤¤¤ë¤«¤Î¤è¤¦¤Ë¥×¥ì¥¤¥ä¡¼¤ò¸«¤¨¤Ê¤¤¾õÂÖ¤ËÀÚ¤êÂؤ¨¡¢¥³¥é¥¤¥À¡¼³°¤Ë½Ð¤¿»þ¤Ë¸µ¤ÎÍ¥Àè½ç°Ì¤Ë¤â¤É¤¹¤è¤¦¤ËÀ©¸æ¤·¤Þ¤¹¡£
¡¡¤³¤Î¤è¤¦¤ÊÀ©¸æ¤ò²Ã¤¨¤ë¤³¤È¤Ç¡¢³Æ¥ª¥Ö¥¸¥§¥¯¥È¤´¤È¤Ë²èÁü¤ÎÍ¥Àè½ç°Ì¤ÎÀÚ¤êÂؤ¨¤¬²Äǽ¤Ë¤Ê¤ê¡¢£²£Ä¥²¡¼¥àÆâ¤Ç¤Î¥È¥ó¥Í¥ë¤Ê¤É¤Îɽ¸½¤¬¼Â¸½¤Ç¤¤Þ¤¹¡£
¡¡ÉÁ²è¤Ë¤Ä¤¤¤Æ¤È¡¢°ÜÆ°ÈϰϤÎÀ©¸æ¤Ë¤Ä¤¤¤Æ¤ÏÊÌ¡¹¤Î½èÍý¤È¤·¤Æ¹Í¤¨¤Þ¤¹¡£
¡¡ÉÁ²èÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È¡¢¤½¤ÎÀÚ¤êÂؤ¨¤ò¹Ô¤¦¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È¤ÏÊÌ¡¹¤ËÍÑ°Õ¤¹¤ëÊý¼°¤Ç¤¹¡£
¤³¤Î¤è¤¦¤ËʬΥ¤·¤Æ´ÉÍý¤¹¤ë¤³¤È¤Ç¡¢ÀÚ¤êÂؤ¨ÂоݤβèÁü¤ò¥¢¥µ¥¤¥óÊѹ¹¤¹¤ë¤À¤±¤ÇÊѹ¹²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ã¸«¤¨¤Ê¤¤¥³¥é¥¤¥À¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡ÇÛÃÖÎã¡ä
¡ã¸«¤¨¤Ê¤¤¥³¥é¥¤¥À¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼Îã¡ä
¡¡¤³¤Î¾ì¹ç¤Ë¤Ï¡¢¥È¥ó¥Í¥ëÉôʬ¤Ë¸«¤¨¤Ê¤¤¥³¥é¥¤¥À¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÇÛÃÖ¤·¡¢
¤³¤ÎÉôʬ¤Ë¿¯Æþ¤·¤¿ºÝ¤Ë²èÁü¤Îɽ¼¨Í¥Àè½ç°Ì¤òÀÚ¤êÂؤ¨¤Æ¡¢¥È¥ó¥Í¥ëÉôʬ¤¬ºÇÁ°Ì̤ˤ¯¤ë¤è¤¦¤ËÀ©¸æ¤·¤Þ¤¹¡£
¤½¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¥¥ã¥é¤¬±£¤ì¡¢¤¢¤¿¤«¤â¥È¥ó¥Í¥ëÆâ¤Ë¤¤¤ë¤«¤Î¤è¤¦¤Ë±é½Ð¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£
¡¡ÉÁ²è¤ÎÍ¥Àè½ç°ÌÊѹ¹¥È¥ê¥¬¡¼ÍѤΥª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¥¹¥¯¥ê¥×¥È¤Ç¤¹¡£
Àè¤Û¤É¤â¤ªÅÁ¤¨¤·¤¿Ä̤ꡢ¥È¥ê¥¬¡¼ÍѤΥª¥Ö¥¸¥§¥¯¥È¤È²èÁü¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÏÊÌ¡¹¤Ç¹Í¤¨¤Æ¤¯¤À¤µ¤¤¡£
¡¡tunnelSprite ÊÑ¿ô¤Ë¥¢¥µ¥¤¥ó¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î SpriteRenderer ¤òÀ©¸æ¤¹¤ë¤³¤È¤Ç¡¢²èÌ̤Îɽ¼¨Í¥Àè½ç°Ì¤òÀÚ¤êÂؤ¨¤ë»ÅÁȤߤǤ¹¡£
using UnityEngine; /// <summary> /// ÉÁ²è¤ÎÍ¥Àè½ç°ÌÊѹ¹¥È¥ê¥¬¡¼ÍѤΥª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¥¹¥¯¥ê¥×¥È /// ¥È¥ê¥¬¡¼ÍѤΥª¥Ö¥¸¥§¥¯¥È¤È²èÁü¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÏÊÌ¡¹¤Ç¹Í¤¨¤ë /// </summary> public class Tunnel : MonoBehaviour { [SerializeField] private Renderer tunnelSprite; //¥¥ã¥é¤äŨ¤è¤ê¤âÉÁ²è¤ÎÍ¥Àè½ç°Ì¤Î¹â¤¤²èÁü¡£º£²ó¤Ï¥È¥ó¥Í¥ëÍѤβèÁü¤À¤¬¡¢¤É¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎRenderer¤Ç¤â¤¤¤¤¡£ public int TunnelSpriteOrderNum => tunnelSprite.sortingOrder; //¥È¥ó¥Í¥ëÍѤβèÁü¤ÎOrder in Layer¤ÎÃͤΥץí¥Ñ¥Æ¥£ }
¡¡¥×¥ì¥¤¥ä¡¼¤äŨ¤Ê¤É¤Î°ÜÆ°¤¹¤ë¥¥ã¥é¤Ë¥¢¥¿¥Ã¥Á¤·¡¢É½¼¨¤ÎÍ¥Àè½ç°Ì¤òÊѹ¹¤¹¤ë¥¹¥¯¥ê¥×¥È¤Ç¤¹¡£
¥×¥ì¥¤¥ä¡¼¤Îɽ¼¨Í¥Àè½ç°Ì¤ò¤¹¤Ù¤Æ¤Î°ÜÆ°¥¥ã¥é¤ËŬÍѤ·¤Æ¤·¤Þ¤¦¤È¡¢Å¨Â¦¤Îɽ¼¨¤¬Àµ¤·¤¤Í¥Àè½ç°Ì¤Çɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£
(Î㤨¤Ð¡¢¥×¥ì¥¤¥ä¡¼¤Ï¥È¥ó¥Í¥ëÆâ¤Ç¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢¤¹¤Ù¤Æ¤ÎŨ¤¬¥È¥ó¥Í¥ëÆâ¤Ë¤¤¤ë¤È¤Ï¸Â¤ê¤Þ¤»¤ó¡£)
¡¡¤è¤Ã¤Æ¡¢¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï¡¢°ÜÆ°¤¹¤ë¥¥ã¥é¤´¤È¤Ë¸ÄÊ̤˥¢¥¿¥Ã¥Á¤·¡¢¤½¤ì¤¾¤ì¤¬¼«Ê¬¼«¿È¤Î°ÌÃ֤ˤè¤Ã¤Æɽ¼¨Í¥Àè½ç°Ì¤ò·èÄꤹ¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤½¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç²èÌ̤ÎÀ°¹çÀ¤¬Êݤ¿¤ì¤ë¤è¤¦¤ËÀ©¸æ¤Ç¤¤Þ¤¹¡£
using UnityEngine; /// <summary> /// ¥×¥ì¥¤¥ä¡¼¤äŨ¤Ê¤É¤Î¥¥ã¥é¤Ë¥¢¥¿¥Ã¥Á¤·¡¢É½¼¨¤ÎÍ¥Àè½ç°Ì¤òÊѹ¹¤¹¤ë¥¹¥¯¥ê¥×¥È /// </summary> public class SpriteOrderSwitcher : MonoBehaviour { private SpriteRenderer sr; // ¥¢¥¿¥Ã¥Á¤·¤¿¥¥ã¥é¤Î SpriteRenderer private int defaultOrderNum; // SpriteRenderer ¤Î½é´üÃÍ¡£Í¥Àè½ç°Ì¤ò¸µ¤Î¾õÂÖ¤ËÌ᤹¤Ë¤È¤¤Ë»È¤¦ private void Reset() { if(transform.GetChild(0).TryGetComponent(out sr)) { Debug.Log($"SpriteRenderer ¼èÆÀ¤·¤Þ¤·¤¿ : {sr}"); } else { Debug.Log($"SpriteRenderer ¼èÆÀ¤Ç¤¤Þ¤»¤ó : {sr}"); } // ½é´üÃÍÀßÄê defaultOrderNum = sr.sortingOrder; } private void Start() { Reset(); } private void OnTriggerStay2D(Collider2D other) { // º£²ó¤Î¾ì¹ç¡¢¥¥ã¥é(¥×¥ì¥¤¥ä¡¼¤äŨ)¤¬¥È¥ó¥Í¥ë¤Ë¿¯Æþ¤·¤Æ¤¤¤ë´Ö if (other.TryGetComponent(out Tunnel tunnel)) { // ¤³¤Î¥¥ã¥é¤Îɽ¼¨Í¥Àè½ç°Ì¤ò¥È¥ó¥Í¥ë¤è¤ê¤âÄ㤤ÃͤËÀßÄꤹ¤ë // ¸ÇÄêÃͤÇÃͤò¥»¥Ã¥È¤»¤ºÊÑ¿ô¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢¥È¥ó¥Í¥ë¤Ë¥¢¥µ¥¤¥ó¤µ¤ì¤Æ¤¤¤ë²èÁü¤ËÂбþ¤Ç¤¤ë sr.sortingOrder = tunnel.TunnelSpriteOrderNum - 1; } } private void OnTriggerExit2D(Collider2D other) { // º£²ó¤Î¾ì¹ç¡¢¥¥ã¥é(¥×¥ì¥¤¥ä¡¼¤äŨ)¤¬¥È¥ó¥Í¥ë¤«¤é½Ð¤¿¤È¤ // out ¥¡¼¥ï¡¼¥É»þ¤ÎÊÑ¿ô¤ò _ ¤Ë¤¹¤ë¤È¡¢Tunnnel ¥¯¥é¥¹¤ò¼èÆÀ¤Ï¤¹¤ë(ȽÄê¤Ï¤¹¤ë)¤¬¡¢¼èÆÀ¤·¤¿¾ðÊó¤Ï if ʸÆâ¤Ç»È¤ï¤Ê¤¤¤³¤È¤òÌÀ¼¨Åª¤Ë¼¨¤»¤ë if (other.TryGetComponent(out Tunnel _)) { // ¤³¤Î¥¥ã¥é¤Îɽ¼¨Í¥Àè½ç°Ì¤ò¸µ¤ÎÃͤËÌ᤹ sr.sortingOrder = defaultOrderNum; } } }
¡¡¥¥ã¥é¤Î¿¯ÆþȽÄêÍѤ諤¨¤Ê¤¤¥³¥é¥¤¥À¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë Tunnel ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
TunnelSprite ÊÑ¿ô¤Ë¤Ï¡¢¥È¥ó¥Í¥ë¤Ê¤É¤Î¡¢¥¥ã¥é¤è¤ê¤âɽ¼¨Í¥Àè½ç°Ì¤ò¾å¤ËÊѤ¨¤¿¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥µ¥¤¥ó¤·¤ÆÍøÍѤ·¤Þ¤¹¡£
¡¡°ÜÆ°¤¹¤ë¥¥ã¥é¤Ë¤Ï SpriteOrderSwitcher ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
¥¥ã¥é¤Î¿¯ÆþȽÄêÍѤ諤¨¤Ê¤¤¥³¥é¥¤¥À¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È
°ÜÆ°¤¹¤ë¥¥ã¥é
¡¡¥×¥ì¥¤¥ä¡¼ÍÑ¥¥ã¥é¤ò°ÜÆ°¤µ¤»¤Æ¡¢¸«¤¨¤Ê¤¤¥³¥é¥¤¥À¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¿¯Æþ¤·¤Æ¤¯¤À¤µ¤¤¡£
Ʊ»þ¤Ë²èÁü¤Îɽ¼¨Í¥Àè½ç°Ì¤¬ÀÚ¤êÂؤï¤ê¡¢¥×¥ì¥¤¥ä¡¼ÍÑ¥¥ã¥é¤¬¸«¤¨¤Ê¤¯¤Ê¤ì¤ÐÀ©¸æÀ®¸ù¤Ç¤¹¡£
¡¡¤½¤Î¸å¡¢¸«¤¨¤Ê¤¤¥³¥é¥¤¥À¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÈϰϤ«¤éÈ´¤±¤¿¤È¤¡¢ºÆÅÙ¡¢¥×¥ì¥¤¥ä¡¼ÍÑ¥¥ã¥é¤¬²èÌ̤Ëɽ¼¨¤µ¤ì¤ì¤Ð¡¢¤³¤Á¤é¤âÀ©¸æÀ®¸ù¤Ç¤¹¡£
¡¡¤É¤Î¤è¤¦¤Ê½èÍý¤¬¹Ô¤ï¤ì¡¢¤É¤Î¤è¤¦¤ÊµóÆ°¤Ë¤Ê¤ì¤ÐŬÀڤǤ¢¤ë¤«¤ò¼«Ê¬¤ÇȽÃǤǤ¤ë¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£
¤½¤Î¤¿¤á¤Ë¤Ï¡¢¥Ç¥Ð¥Ã¥°Á°¤Ë½èÍý¤Î¸«Ä¾¤·¤ò¹Ô¤¤¡¢¤É¤Î¤è¤¦¤Ë¤Ê¤ëÁÛÄê¤Ê¤Î¤«¤ò¥¤¥á¡¼¥¸¤·¤¿¾å¤Ç¡¢¥Ç¥Ð¥Ã¥°¤ò¹Ô¤Ã¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¡¡¾åµ¤Î½èÍý¤Ë²Ã¤¨¤Æ¡¢³¬Ãʤξ岼°ÜÆ°¤Ë¤è¤ëÊ£¿ô³¬Áع½Â¤»þ¤Î¥³¥é¥¤¥À¡¼¤ÎÀÚ¤êÂؤ¨µ¡Ç½¤Î¼ÂÁõÎã¤Ç¤¹¡£
¡¡Î㤨¤Ð¡¢¥¥ã¥é¤¬£²³¬Éôʬ¤Ë¤¤¤ëºÝ¤Ë¤Ï¥È¥ó¥Í¥ëÉôʬ¤ÏÄ̹ÔÉԲĤˤ¹¤ëɬÍפ¬¤¢¤ê¡¢
µÕ¤Ë¥È¥ó¥Í¥ëÆâ¤Ë¤¤¤ë¾ì¹ç¤Ë¤Ï£²³¬Éôʬ¤òÄ̹ÔÉԲĤˤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡¡¤½¤ì¤é¤ÎÀÚ¤êÂؤ¨¤ò¿¯Æþ°ÌÃ֤ˤè¤êÀÚ¤êÂؤ¨¤ëÊýË¡¤Ç¤Î¥¢¥×¥í¡¼¥Á¤Ç¤¹¡£
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Tilemaps; //³¬ÃʤòÅФ俤顢¥È¥ó¥Í¥ë½ÐÆþ¤êÍѤΥ³¥é¥¤¥À¡¼¤Î¥ª¥ó¡¢¥ª¥Õ¤òÀÚ¤êÂؤ¨¤ë public class MapManager : MonoBehaviour { public bool isClimbedStairs = false; //³¬ÃʤòÅФ俤«¡¢ÅФäƤʤ¤¤«(·úʪ¤Î¾å¤Ë¤¤¤ë¤«¡¢²¼¤Ë¤¤¤ë¤«) //ÀÚ¤êÂؤ¨¤ë¥³¥é¥¤¥À¡¼ [SerializeField] private Collider2D leftTunnelWall; [SerializeField] private Collider2D rightTunnelWall; [SerializeField] private Collider2D gateTopWall; [SerializeField] private TilemapCollider2D wall_switchTilemap; /// <summary> /// ³¬ÃʤòÅФ俤«¤É¤¦¤«(·úʪ¤Î¾å¤Ë¤¤¤ë¤«¤É¤¦¤«)¤òȽÄꤷ¡¢¤½¤ì¤Ë¹ç¤ï¤»¤Æ³ÆÃϤΥ³¥é¥¤¥À¡¼¤Î¥ª¥ó¥ª¥Õ¤òÀÚ¤êÂؤ¨¤ë /// (¤³¤ì¤òÀÚ¤êÂؤ¨¤Ê¤¤¤È¡¢°Õ¿Þ¤·¤Ê¤¤¾ì½ê¤Ç¥¥ã¥é¤¬°ú¤Ã¤«¤«¤Ã¤ÆÄ̤ì¤Ê¤¤¾ì½ê¤¬È¯À¸¤·¤¿¤ê¤¹¤ë) /// </summary> /// <param name="isClimbedStairs">³¬ÃʤòÅФ俤«¡¢ÅФäƤʤ¤¤«(·úʪ¤Î¾å¤Ë¤¤¤ë¤«¡¢²¼¤Ë¤¤¤ë¤«)</param> public void JudgeClimbedStairs() { //³¬ÃʤòÅФä¿(·úʪ¤Î¾å¤Ë¤¤¤ë)ºÝ¤Î½èÍý if (isClimbedStairs) { leftTunnelWall.enabled = false; rightTunnelWall.enabled = false; gateTopWall.enabled = true; wall_switchTilemap.enabled = true; } //³¬Ãʤò¹ß¤ê¤¿(·úʪ¤Î²¼¤Ë¤¤¤ë)ºÝ¤Î½èÍý if (!isClimbedStairs) { leftTunnelWall.enabled = true; rightTunnelWall.enabled = true; gateTopWall.enabled = false; wall_switchTilemap.enabled = false; } Debug.Log("¥³¥é¥¤¥À¡¼¤Î¥ª¥ó¡¢¥ª¥Õ¤òÀÚ¤êÂؤ¨¤Þ¤·¤¿"); } }
¡¡¥Ò¥¨¥é¥ë¥¡¼¤Î¶õ¤¤¤Æ¤¤¤ëÉôʬ¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¹Ô¤¤¥á¥Ë¥å¡¼¤ò³«¤¡¢Create Empty ¤òÁªÂò¤·¤Þ¤¹¡£
MapManager ¤Ë̾Á°¤òÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡Â³¤¤¤Æ¡¢Àè¤Û¤ÉºîÀ®¤·¤¿ MapManager ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
¡¡Ê£¿ô¤Î¥¢¥µ¥¤¥óÍѤÎÊÑ¿ô¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¥³¥é¥¤¥À¡¼¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤è¤ê¡¢À©¸æ¤·¤¿¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£
¤³¤³¤Ç¤Ï³¬Áع½Â¤ÍѤËÍÑ°Õ¤·¤¿¸«¤¨¤Ê¤¤¥³¥é¥¤¥À¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¤½¤ì¤¾¤ì¥¢¥µ¥¤¥ó¤·¤Æ¤¤¤Þ¤¹¡£
¡ã¥¢¥µ¥¤¥óÎã¡ä
¡¡°ÊÁ°¤Î¼ê½ç¤ÇºîÀ®¤·¤Æ¤¢¤ë SpriteOrderSwitcher ¥¹¥¯¥ê¥×¥È¤Î½¤Àµ¤ò¹Ô¤¤¡¢Ê£¿ô³¬Áع½Â¤¤Î¥³¥é¥¤¥À¡¼ÀÚ¤êÂؤ¨¤ËÂбþ¤µ¤»¤Þ¤¹¡£
using UnityEngine; /// <summary> /// ¥×¥ì¥¤¥ä¡¼¤ÎÉÁ²è½èÍý¤È¥Þ¥Ã¥×¤Î¥³¥é¥¤¥À¡¼½èÍý /// </summary> public class SpriteOrderSwitcher : MonoBehaviour { private SpriteRenderer sr; //¥¢¥¿¥Ã¥Á¤·¤¿¥¥ã¥é¤ÎSpriteRenderer private int defaultOrderNum; //SpriteRenderer¤Î½é´üÃÍ¡£Í¥Àè½ç°Ì¤ò¤â¤È¤Î¾õÂÖ¤ËÌ᤹¤È¤¤Ë»È¤¦ private float xCoordinate; //OnTriggerEnter»þ¤ËxºÂɸ¤òµÏ¿¤·¤Æ¤ª¤¯ private float yCoordinate; [SerializeField] private MapManager mapManager; [SerializeField] private int TunnnelSpriteOrderNum; //¥È¥ó¥Í¥ë¤ÎÉÁ²èÃÍ void Start() { Reset(); } private void Reset() { if (transform.GetChild(0).TryGetComponent(out sr)) { defaultOrderNum = sr.sortingOrder; //Debug.Log($"SpriteRenderer¤ò¼èÆÀ¤·¤Þ¤·¤¿¡§{sr}"); } } /// <summary> /// ¥³¥é¥¤¥À¡¼¤ËÆþ¤Ã¤¿»þ¡¢x¤Þ¤¿¤ÏyºÂɸ¤òµÏ¿¤¹¤ë /// </summary> /// <param name="other"></param> private void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.name == "LayerTrigger0") //<= º£²ó¤Î¾ì¹ç¤Ë¤Ï³¬ÃʤÏ2¤Ä¤¢¤ê¡¢¤½¤ì¤¾¤ì¸þ¤¤¬°ã¤¦¤Î¤Ç¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤Çʬ´ô { yCoordinate = transform.position.y; Debug.Log($"yCoordinate¡§{yCoordinate}"); } if (other.gameObject.name == "LayerTrigger1") { xCoordinate = transform.position.x; } } /// <summary> /// ¥³¥é¥¤¥À¡¼¤Ë½ÐÆþ¤ê¤¹¤ëºÝ¤ÎºÂɸ¤Îº¹¤Ë±þ¤¸¤Æ¥³¥é¥¤¥À¡¼¤ÈÉÁ²è¤òÀÚ¤êÂؤ¨¤ë /// </summary> /// <param name="col"></param> private void OnTriggerExit2D(Collider2D col) { if (col.gameObject.name == "LayerTrigger0") { //¥³¥é¥¤¥À¡¼¤«¤é½Ð¤¿»þ¤ÈÆþ¤Ã¤¿»þ¤ÎºÂɸ¤¬°ìÄê°Ê¾åÎ¥¤ì¤Æ¤¤¤¿¤é if (Mathf.Abs(yCoordinate - transform.position.y) > 2f) { //¿¿µ¶Ãͤòȿž¤µ¤»¤ë mapManager.isClimbedStairs = !mapManager.isClimbedStairs; mapManager.JudgeClimbedStairs(); //¥¥ã¥é¤ÎÉÁ²è½ç¤ò¥È¥ó¥Í¥ë¤è¤ê¤â¹â¤¯¤¹¤ë SwitchSpriteOrder(mapManager.isClimbedStairs); } } if (col.gameObject.name == "LayerTrigger1") { if (Mathf.Abs(xCoordinate - transform.position.x) > 2f) { mapManager.isClimbedStairs = !mapManager.isClimbedStairs; mapManager.JudgeClimbedStairs(); SwitchSpriteOrder(mapManager.isClimbedStairs); } } //¼¡²ó¤ÎȽÄê¤ËÈ÷¤¨¤Æ¡¢³ÆÊÑ¿ô¤ò½é´ü²½ xCoordinate = 0; yCoordinate = 0; } /// <summary> /// ³Æ¥¥ã¥é¤ÎÉÁ²è½ç¤ÎÀÚ¤êÂؤ¨ /// </summary> /// <param name="bringToFront">¥¥ã¥é¤ÎÉÁ²è¤òbase_switch¤è¤ê¤âÁ°Ì̤˻ý¤Ã¤Æ¤¯¤ë¤«¤É¤¦¤«</param> private void SwitchSpriteOrder(bool bringToFront) { if (bringToFront) { sr.sortingOrder = TunnnelSpriteOrderNum + 2; } else { sr.sortingOrder = defaultOrderNum; } //Debug.Log("SwitchSpriteOrder¤¬Æ°¤¤Þ¤·¤¿"); } }
¡¡¥³¥é¥¤¥À¡¼¤ÎÀÚ¤êÂؤ¨ÂоݤȤʤ볬ÃÊÉôʬ¤Ë¸«¤¨¤Ê¤¤¥³¥é¥¤¥À¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£
²èÁü¤ÎÀÚ¤êÂؤ¨¤âȯÀ¸¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¤³¤Á¤é¤Ë Tunnel ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤Æ¡¢ÀÚ¤êÂؤ¨ÂоݤȤʤë²èÁü¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡³¬ÃÊÉôʬ¤Ë¿¯Æþ¤·¤¿¤ê¡¢È´¤±¤¿¤ê¤·¤Æ¡¢³¬Áع½Â¤¤ËÂбþ¤·¤¿¥³¥é¥¤¥À¡¼¤ÎÀÚ¤êÂؤ¨¤¬½ÐÍè¤Æ¤¤¤ë¤«¡¢³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¤³¤Á¤é¤Î¥²¡¼¥à¤Î³¬ÃÊÉôʬ¤ËºÎÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£
Unityroom
Space Survivors
https://unityroom.com/games/spacesurvivors
¡¡°Ê¾å¤Ç´°À®¤Ç¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯