ºÇ½ª¹¹¿·¡§ orika_ex_miyako 2023ǯ11·î22Æü(¿å) 18:45:55ÍúÎò
¡¡Êɤ侲¤Î¥³¥é¥¤¥À¡¼ÆâÉô¤ËÃƤ¬À¸À®¤µ¤ì¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¡¢¤½¤Î¤Þ¤Þ¤Ç¤¹¤ÈÃƤ¬Êɤ侲¤ÎÃæ¤ò´ÓÄ̤·¤Þ¤¹¡£
¤½¤ì¤òÀ§¤È¤¹¤ë¥²¡¼¥àɽ¸½¤Ç¤¢¤ì¤ÐÌäÂꤢ¤ê¤Þ¤»¤ó¤¬¡¢Êɤ侲¤òÃƤ¬´ÓÄ̤¹¤ë¤Î¤òÎɤ·¤È¤·¤Ê¤¤¥²¡¼¥à¤Î¾ì¹ç¤Ë¤Ï²óÈòºö¤¬É¬Íפˤʤê¤Þ¤¹¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡º£²ó¤Ï£³¤Ä¤Î¥¢¥×¥í¡¼¥ÁÎã¤ò·ÇºÜ¤·¤Þ¤¹¡£
¡¡£²£Ä¥²¡¼¥àÍѤΥ³¥é¥¤¥À¡¼¡¢¤ª¤è¤Ó¥¿¥¤¥ë¥Þ¥Ã¥×¤Î¥³¥é¥¤¥À¡¼¤ËÂФ·¤Æ¤Î¼ÂÁõÎã¤Ç¤¹¡£
¡¡avoidCollider ÊÑ¿ô¤Ë¥¢¥µ¥¤¥ó¤µ¤ì¤¿Êɤ侲¤Î¥³¥é¥¤¥À¡¼¤ò´¶ÃΤµ¤»¤Æ
¤½¤Î¥³¥é¥¤¥À¡¼¤ÎÆâÉô¤ËÀ¸À®¤µ¤ì¤ëÁÛÄê¤Ç¡¢OnTriggerStay2D ¥á¥½¥Ã¥É¤òÍøÍѤ·¤ÆÂн褹¤ëÊýË¡¤Ç¤¹¡£
¡¡¤³¤ÎÎã¤Î¾ì¹ç¡¢¥³¥é¥¤¥À¡¼¤«¤é¸«¤Æ¡¢ÃƤǤ¢¤ë¤«¤òȽÄꤷ¤Æ¤¤¤Þ¤¹¡£
³Æ¥³¥é¥¤¥À¡¼¤´¤È¤Ë¤³¤Î¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤ÆÍøÍѤ·¤Þ¤¹¡£
¡¡ÃƤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ï Bullet ¤È¤¤¤¦Ì¾Á°¤Î¥¯¥é¥¹(ÃƤÎÀ©¸æ¤ò¹Ô¤¦¥¯¥é¥¹)¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ëÁ°Äó¤Ç¤¹¡£
using UnityEngine; using UniRx; using UniRx.Triggers; public class AvoidBulletExample : MonoBehaviour { [SerializeField] private Collider2D avoidCollider;¡¡¡¡// ÂоݤȤʤ륳¥é¥¤¥À¡¼¤Î¥¢¥µ¥¤¥ó private void OnTriggerStay2D(Collider2D other) { // Êɤ侲¤ËÂФ·¤Æ¿¯Æþ¤·¤Æ¤¤¤ë¥³¥é¥¤¥À¡¼¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¹¤ò³Îǧ¤·¤ÆÃƤǤ¢¤ë¤«¤òȽÄꤹ¤ë if(other.gameObject.TryGetComponent(out Bullet bullet)) { // OnTriggerStay2D¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿ºÝ¤Î½èÍý Debug.Log($"OnTriggerStay2D event triggered with collider: { bullet.gameObject.name }"); // ¤³¤³¤ÇÃƤò¾Ã¤¹ Destroy(bullet.gameObject); } } }
¡¡¾åµ¤Î½èÍý¤ò UniRx ¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë .OnTriggerStay2DAsObservable ¤ËÃÖ¤´¹¤¨¤¿¾ì¹ç¤ÎÎã¤Ç¤¹¡£
using UnityEngine; using UniRx; using UniRx.Triggers; public class AvoidBulletExample : MonoBehaviour { [SerializeField] private Collider2D avoidCollider;¡¡¡¡// ÂоݤȤʤ륳¥é¥¤¥À¡¼¤Î¥¢¥µ¥¤¥ó void Start() { // OnTriggerStay2D¤Î¥¤¥Ù¥ó¥È¤òUniRx¤Ç¹ØÆÉ avoidCollider ¡¡¡¡.OnTriggerStay2DAsObservable() ¡¡¡¡.Where(otherCollider => otherCollider.gameObject.TryGetComponent(out Bullet bullet)) .Subscribe(otherCollider => { // OnTriggerStay2D¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿ºÝ¤Î½èÍý Debug.Log($"OnTriggerStay2D event triggered with collider: { otherCollider.name }"); // ¤³¤³¤ÇÃƤò¾Ã¤¹(otherCollider ¤òÍøÍѤ¹¤ë) if(otherCollider.gameObject.TryGetComponent(out Bullet bullet)){ Destroy(bullet.gameObject); } }) .AddTo(this); // ¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥ó¤òÇË´þ¤¹¤ë¤¿¤á¤Ë¡¢¤³¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬ÇË´þ¤µ¤ì¤¿»þ¤Ë¼«Æ°Åª¤ËÇË´þ¤¹¤ë¤è¤¦¤ËÅÐÏ¿ } }
¡¡
¡¡¤Ê¤ª¡¢¥¿¥¤¥ë¥Þ¥Ã¥×¤Î¾ì¹ç¤Ë¸Â¤ê¤Ç¤¹¤¬¡¢TilemapCollider2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë²Ã¤¨¤Æ
Composit Collider2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÍøÍѤ·¤Æ¥¿¥¤¥ë¥Þ¥Ã¥×¤Î¥³¥é¥¤¥À¡¼¤ò·ë¹ç¤·¤Æ¤¤¤ë¾ì¹ç¡¢¤³¤Î½èÍý¤ÏÀµ¾ï¤ËÆ°ºî¤·¤Þ¤»¤ó¡£
¡¡
¤½¤Î¾ì¹ç¡¢¥¿¥¤¥ë¥Þ¥Ã¥×¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë Composit Collider2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥ê¥à¡¼¥Ö¤¹¤ì¤Ð
¾åµ¤Î¥¹¥¯¥ê¥×¥È¤¬Àµ¾ï¤ËÆ°ºî¤·¤Æ¡¢ÃƤ¬¾Ã¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤¿¤À¤·¡¢Composit Collider2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥ê¥à¡¼¥Ö¤·¤Æ¤·¤Þ¤¦¤È
¥¿¥¤¥ë¥Þ¥Ã¥×¤Î¥³¥é¥¤¥À¡¼¤¬¥°¥ë¡¼¥×¤Ç¤Ï¤Ê¤¯Ã±ÂÎÆ°ºî¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¤Î¤Ç¡¢³ê¤é¤«¤Ê¾²¤ÎȽÄê¤Ï¤Ê¤¯¤Ê¤ê¡¢¥³¥é¥¤¥À¡¼¤Î·×»»Éé²Ù¤¬Áý¤¨¤Þ¤¹¡£
¡¡¤³¤ÎÊÕ¤ê¤Ï¥²¡¼¥à¤Îɽ¸½¤È¥È¥ì¡¼¥É¥ª¥Õ¤Î´Ø·¸À¤Ë¤Ê¤ë¤È»×¤¤¤Þ¤¹¤Î¤Ç¡¢
¤´¼«Ê¬¤Î¥¤¥á¡¼¥¸¤Ë¶á¤¤É½¸½¤Î¼ÂÁõ¤òºÎÍѤ¹¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¡¡Ê̤Υ¢¥×¥í¡¼¥Á¤È¤·¤Æ¤Ï¡¢ÃƤÎÀ¸À®»þ¤Ë¡¢ÃƤÎȯ¼Í¤µ¤ì¤ë°ÌÃ֤Υ¿¥¤¥ë¥Þ¥Ã¥×¤ò³Îǧ¤·¡¢
¤½¤Î¥¿¥¤¥ë¥Þ¥Ã¥×¤Ë¥³¥é¥¤¥À¡¼¤¬Å¬ÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏÃƤòÀ¸À®¤·¤Ê¤¤¡¢¤¢¤ë¤¤¤Ï¡¢À¸À®¤·¤Æ¤¹¤°¤ËÇ˲õ¤¹¤ë¡¢¤È¤¤¤¦ÊýË¡¤â¤¢¤ê¤Þ¤¹¡£
¡¡¥¢¥×¥í¡¼¥Á£±¤È¤Ï°Û¤Ê¤ê¡¢³ºÅö¤¹¤ë¥³¥é¥¤¥À¡¼¤ò¥¢¥µ¥¤¥ó¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯
¥ì¥¤¥ä¡¼¤Î»ØÄê(Î㤨¤Ð Ground ¤È¤¤¤Ã¤¿¥ì¥¤¥ä¡¼) ¤ò¹Ô¤¦¤³¤È¤Ç¡¢ÃƦ¤«¤é¸«¤Æ¥³¥é¥¤¥À¡¼¤òÆÃÄꤷ¤Æ¤¤¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¡¢¤³¤Á¤é¤Î¥¹¥¯¥ê¥×¥È¤ÏÃƤÎÀ¸À®Ìò¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ëµ½Ò¤¹¤ë½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡ÃƤòÀ¸À®¤¹¤ë¥¯¥é¥¹Æâ¤Ë¡¢²¼µ¤Î½èÍý¤òÄɲä·¤Þ¤¹¡£
public LayerMask obstacleLayer; // Êɤä¾ã³²Êª¤Î¥ì¥¤¥ä¡¼¥Þ¥¹¥¯ private float radius = 0.1f; // ¥³¥é¥¤¥À¡¼È½ÄêÍѤαߤÎȾ·Â // ¥³¥é¥¤¥À¡¼¤ÎÍ̵¤òȽÄꤹ¤ë¥á¥½¥Ã¥É private bool CheckColliderAtPosition(Vector2 position) { Collider2D hitCollider = Physics2D.OverlapCircle(position, radius, obstacleLayer); return hitCollider != null; }
¡¡OverlapCircle ¥á¥½¥Ã¥É¤ÎÂè2°ú¿ô radius ¤¬¥³¥é¥¤¥À¡¼È½ÄêÍѤαߤÎȾ·Â¤Ç¤¹¡£
¤³¤³¤Ç¤Ï 0.1 ¤È¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¥¿¥¤¥ë¥Þ¥Ã¥×£±¤Äʬ¤Î¥µ¥¤¥º¤Ë¤Ê¤ë¤è¤¦¤ËÄ´À°¤¹¤ë´¶¤¸¤Ç¤¹¡£
¡¡¤³¤Î¤è¤¦¤ËÌá¤êÃͤò»ý¤Ä¥³¥é¥¤¥À¡¼È½ÄêÍѤΥ᥽¥Ã¥É¤òÍÑ°Õ¤·¤Æ¤ª¤¤¤Æ¡¢ÃƤÎÀ¸À®¸å¤Ë¤³¤Î¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£
¡¡¾åµ¤Î½èÍý¤ò»È¤¦ºÝ¤Ë¤Ï¡¢²¼µ¤Î¤è¤¦¤Ê¹½À®¤ÇÍøÍѤ·¤Þ¤¹¡£
// ÃƤÎÀ¸À® // ¥³¥é¥¤¥À¡¼¤ÎÍ̵¤òȽÄꤷ¤Æ·ë²Ì¤ò¼èÆÀ bool hasCollider = CheckColliderAtPosition([ÃƤÎÀ¸À®°ÌÃÖ]); if (hasCollider) { // ¥³¥é¥¤¥À¡¼¤¬¤¢¤ë¾ì¹ç¤ÏÃƤò¤¹¤°¤ËÇ˲õ¡£+ ±é½Ð Destroy(bullet); return; } // ¥³¥é¥¤¥À¡¼¤¬¤Ê¤¤¾ì¹ç¤ÏÄ̾ï¤Î½èÍý¤ò³¹Ô
¡¡¤³¤¦¤¤¤Ã¤¿·Á¤Çʬ´ô¤òºî¤ê¡¢ÃƤÎÀ¸À®»þ¤Ë¥³¥é¥¤¥À¡¼ÆâÉô¤Ë¤¤¤Ê¤¤¤«¤òȽÄꤷ¤Æ¤«¤é¡¢ÃƤòȯ¼Í¤µ¤»¤ëÊýË¡¤Ç¤¹¡£
¡¡ÃƤÎÀ¸À®¥¯¥é¥¹¤ËÁȤ߹þ¤ó¤À·Á¤Ç¡¢¥µ¥ó¥×¥ë·ÇºÜ¤·¤Æ¤ª¤¤Þ¤¹¡£¡¡
using UnityEngine; public class BulletController : MonoBehaviour { public LayerMask obstacleLayer; // Êɤä¾ã³²Êª¤Î¥ì¥¤¥ä¡¼¥Þ¥¹¥¯ // ÃƤÎÀ¸À®¥á¥½¥Ã¥É public void SpawnBullet(Vector2 spawnPosition) { // ÃƤÎÀ¸À® GameObject bullet = Instantiate(gameObject, spawnPosition, Quaternion.identity); // ¥³¥é¥¤¥À¡¼¤ÎÍ̵¤òȽÄꤷ¤Æ·ë²Ì¤ò¼èÆÀ bool hasCollider = CheckColliderAtPosition(spawnPosition); if (hasCollider) { // ¥³¥é¥¤¥À¡¼¤¬¤¢¤ë¾ì¹ç¤ÏÃƤò¤¹¤°¤ËÇ˲õ Destroy(bullet); } else { // ¥³¥é¥¤¥À¡¼¤¬¤Ê¤¤¾ì¹ç¤ÏÄ̾ï¤Î½èÍý¤ò³¹Ô // ¤³¤³¤ÇÃƤήÅÙ¤ä°ÜÆ°Êý¸þ¤Ê¤É¤ÎÀßÄê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹ } } // ¥³¥é¥¤¥À¡¼¤ÎÍ̵¤òȽÄꤹ¤ë¥á¥½¥Ã¥É private bool CheckColliderAtPosition(Vector2 position) { Collider2D hitCollider = Physics2D.OverlapCircle(position, 0.1f, obstacleLayer); return hitCollider != null; } }
¡¡¤³¤Á¤é¤ÎÊýË¡¤Ï£²¤ÎÊýË¡¤ò¥Ù¡¼¥¹¤Ë¤·¤¿¥¿¥¤¥ë¥Þ¥Ã¥×¸ÂÄê¤ÎÊýË¡¤Ç¤¹¡£
¥¿¥¤¥ë¥Þ¥Ã¥×¤Î¥³¥é¥¤¥À¡¼¤ò»²¾È¤·¤Æ¡¢ÃƤ¬¥³¥é¥¤¥À¡¼ÆâÉô¤ËÀ¸À®¤µ¤ì¤¿¾ì¹ç¤Ë¤ÏÇ˲õ¤¹¤ë¤³¤È¤Ç²óÈò¤·¤Þ¤¹¡£
¡¡²¼µ¤Î½èÍý¤òÃƤÎÀ¸À®ÍѤΥ¯¥é¥¹¤ËÄɲä·¤Þ¤¹¡£
public Tilemap obstacleTilemap; // Êɤä¾ã³²Êª¤ÎTilemap // ¥¿¥¤¥ë¥Þ¥Ã¥×¤òÍøÍѤ·¤Æ¥³¥é¥¤¥À¡¼¤ÎÍ̵¤òȽÄꤹ¤ë¥á¥½¥Ã¥É private bool CheckColliderAtPosition(Vector2 position) { // ¥¿¥¤¥ëºÂɸ¤ËÊÑ´¹ Vector3Int cellPosition = obstacleTilemap.WorldToCell(position); // ¥¿¥¤¥ë¤Î¼èÆÀ TileBase tile = obstacleTilemap.GetTile(cellPosition); // ¥¿¥¤¥ë¤¬Â¸ºß¤·¡¢TileCollider¤¬¤¢¤ë¾ì¹ç¤Ï¥³¥é¥¤¥À¡¼¤¬¤¢¤ë¤ÈȽÄê return tile != null && tile.GetComponent<TilemapCollider2D>() != null; }
¡¡¤³¤Á¤é¤Î¾ì¹ç¤À¤È¡¢¥ì¥¤¥ä¡¼¤Ç¤Ï¤Ê¤¯¥¿¥¤¥ë¥Þ¥Ã¥×¤Î¾ðÊó¤¬É¬Íפˤʤê¤Þ¤¹¡£
¤³¤³¤Ç¤Ï£±¤Ä¤À¤±¤Ç¤¹¤¬¡¢¼ÂºÝ¤Ë¥Þ¥Ã¥×¤Î¿ô¤À¤±È½ÄêÍѤΥ¿¥¤¥ë¥Þ¥Ã¥×¾ðÊó¤¬É¬Íפˤʤ뤿¤á¡¢¥¢¥µ¥¤¥ó¾ðÊó¤¬ÂçÎ̤ˤʤê¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¡¢¼ÂºÝ¤Î¥×¥í¥¸¥§¥¯¥È¤Ç¤Î±¿ÍѤò¹Í¤¨¤¿¾ì¹ç¤Ï¡¢²¼µ¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
public Tilemap[] obstacleTilemaps; // Êɤä¾ã³²Êª¤ÎTilemap¤ÎÇÛÎó // Ê£¿ô¤Î¥¿¥¤¥ë¥Þ¥Ã¥×¤òÍøÍѤ·¤Æ¥³¥é¥¤¥À¡¼¤ÎÍ̵¤òȽÄꤹ¤ë¥á¥½¥Ã¥É private bool CheckColliderAtPosition(Vector2 position) { foreach (var tilemap in obstacleTilemaps) { // ¥¿¥¤¥ëºÂɸ¤ËÊÑ´¹ Vector3Int cellPosition = tilemap.WorldToCell(position); // ¥¿¥¤¥ë¤Î¼èÆÀ TileBase tile = tilemap.GetTile(cellPosition); // ¥¿¥¤¥ë¤¬Â¸ºß¤·¡¢TileCollider¤¬¤¢¤ë¾ì¹ç¤Ï¥³¥é¥¤¥À¡¼¤¬¤¢¤ë¤ÈȽÄê if (tile != null && tile.GetComponent<TileCollider>() != null) { return true; // ¥³¥é¥¤¥À¡¼¤¬¸«¤Ä¤«¤ì¤Ð¨ºÂ¤Ëtrue¤òÊÖ¤·¤Æ½ªÎ» } } return false; // Ê£¿ô¤Î¥¿¥¤¥ë¥Þ¥Ã¥×¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤â¥³¥é¥¤¥À¡¼¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ïfalse¤òÊÖ¤¹ }
¡¡¥Þ¥Ã¥×¤òÄɲ乤뤴¤È¤Ë¥¢¥µ¥¤¥ó¾ðÊó¤òÁý¤ä¤µ¤Ê¤¤¤È¤Ê¤é¤Ê¤¤Éôʬ¤È¡¢Â¾¤ËÈæ¤Ù¤Æ½èÍý¤¬Ä¹¤¤¤Î¤¬¥Í¥Ã¥¯¤Ç¤¹¡£
¡¡ÃƤÎÀ¸À®¥¯¥é¥¹¤ËÁȤ߹þ¤ó¤À·Á¤Ç¡¢¥µ¥ó¥×¥ë·ÇºÜ¤·¤Æ¤ª¤¤Þ¤¹¡£¡¡
using UnityEngine; using UnityEngine.Tilemaps; public class BulletController : MonoBehaviour { public Tilemap[] obstacleTilemaps; // Êɤä¾ã³²Êª¤ÎTilemap¤ÎÇÛÎó // ÃƤÎÀ¸À®¥á¥½¥Ã¥É public void SpawnBullet(Vector2 spawnPosition) { // ÃƤÎÀ¸À® GameObject bullet = Instantiate(gameObject, spawnPosition, Quaternion.identity); // ¥³¥é¥¤¥À¡¼¤ÎÍ̵¤òȽÄꤷ¤Æ·ë²Ì¤ò¼èÆÀ bool hasCollider = CheckColliderAtPosition(spawnPosition); if (hasCollider) { // ¥³¥é¥¤¥À¡¼¤¬¤¢¤ë¾ì¹ç¤ÏÃƤò¤¹¤°¤ËÇ˲õ Destroy(bullet); } else { // ¥³¥é¥¤¥À¡¼¤¬¤Ê¤¤¾ì¹ç¤ÏÄ̾ï¤Î½èÍý¤ò³¹Ô // ¤³¤³¤ÇÃƤήÅÙ¤ä°ÜÆ°Êý¸þ¤Ê¤É¤ÎÀßÄê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹ } } // Ê£¿ô¤Î¥¿¥¤¥ë¥Þ¥Ã¥×¤òÍøÍѤ·¤Æ¥³¥é¥¤¥À¡¼¤ÎÍ̵¤òȽÄꤹ¤ë¥á¥½¥Ã¥É private bool CheckColliderAtPosition(Vector2 position) { foreach (var tilemap in obstacleTilemaps) { // ¥¿¥¤¥ëºÂɸ¤ËÊÑ´¹ Vector3Int cellPosition = tilemap.WorldToCell(position); // ¥¿¥¤¥ë¤Î¼èÆÀ TileBase tile = tilemap.GetTile(cellPosition); // ¥¿¥¤¥ë¤¬Â¸ºß¤·¡¢TileCollider¤¬¤¢¤ë¾ì¹ç¤Ï¥³¥é¥¤¥À¡¼¤¬¤¢¤ë¤ÈȽÄê if (tile != null && tile.GetComponent<TileCollider>() != null) { return true; // ¥³¥é¥¤¥À¡¼¤¬¸«¤Ä¤«¤ì¤Ð¨ºÂ¤Ëtrue¤òÊÖ¤·¤Æ½ªÎ» } } return false; // Ê£¿ô¤Î¥¿¥¤¥ë¥Þ¥Ã¥×¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤â¥³¥é¥¤¥À¡¼¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ïfalse¤òÊÖ¤¹ } }
¡¡obstacleTilemaps¤ËÊ£¿ô¤Î¥¿¥¤¥ë¥Þ¥Ã¥×¤òÀßÄꤷ¡¢forʸ¤Ç³Æ¥¿¥¤¥ë¥Þ¥Ã¥×¤ò½ç¤Ë¥Á¥§¥Ã¥¯¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
ºÇ½é¤Ë¸«¤Ä¤«¤Ã¤¿¥³¥é¥¤¥À¡¼¤¬¤¢¤ë¥¿¥¤¥ë¥Þ¥Ã¥×¤ÇÃƤòÇ˲õ¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯