[TIL] 26일차 - 팀 과제 점검

김유원·2024년 1월 29일
0

📝 24.01.29

팀 과제 작업을 마무리 하고 있다. 플레이에는 문제 없을 정도로 완성이 되었고, 몇몇 버그와 꾸밈 요소 등을 추가하면 될 것 같다.

오늘은 새로운 것을 하나 배웠다.

기존에는

gameObejct.Tag == "MapPortal"

로 태그를 비교했었는데,

gameObject.CompareTag("MapPortal")

Compare.Tag() 메서드를 사용하면 효율면에서 더 좋다고 한다.

그 이유는 .Tag 방식으로 태그를 알아내면 getter가 호출되는 것으로, string을 복사 생성하는 것이기 때문이다. 반면 CompareTag()는 동적할당 없이 tag 비교가 가능하도록 구현된 메서드라고 한다. 따라서 앞으로 ColliderTrigger 에서 사용될 중요한 메서드이므로 확실히 알아두어야한다.

해당 메서드를 활용해 현재 ShopPortal이냐 MapPortal이냐 여부를 분별하여 각기 다른 함수가 실행되도록 코드를 수정했다.

MapPortal.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MapPortal : MonoBehaviour
{
    bool isUsed = false;

    private void OnTriggerEnter2D(Collider2D other)
    {
        if(gameObject.CompareTag("MapPortal") && !isUsed)
        {
            if(other.CompareTag("Player"))
            {
                GameManager.Instance.Teleport(false);
                isUsed = true;
            }
        } else if(gameObject.CompareTag("ShopPortal"))
        {
            if (other.CompareTag("Player"))
            {
                MapCreator.instance.CreateNextMap();
            }
        }
        
    }
}
profile
개발 공부 블로그

0개의 댓글

관련 채용 정보