인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

SeongBaek CHO님의 프로필 이미지

작성한 질문수

책 3권을 영상으로 만든 Unity 게임 개발

유닛의 공격(싱글톤패턴, 코루틴)

OnTriggerEnter2D에서 문제가 생겼어요

해결된 질문

작성

·

119

·

수정됨

1

private void OnTriggerEnter2D(Collider2D collision) {         
    Debug.Log("Hi Red~ " + collision.gameObject.tag);
    if(collision.gameObject.tag == "BaseRed") {
        isCollision = true;
        Debug.Log("Bye Red~ " + collision.gameObject.tag);         
    }     
}
스크린샷 2025-02-20 오후 6.39.23.png.webp

 

스크린샷 2025-02-20 오후 6.39.54.png.webp

 

 

쓰고 BaseRed태그를 설정했는데도 불구하고, 로그에 찍히는건 Untagged라고 계속 뜨는데 어떻게 해야할까요?ㅠ

답변 2

1

JEngineer님의 프로필 이미지
JEngineer
지식공유자

질문 감사합니다!

 

사진으로 보내주신 컴포넌트들과 설정하신 Tag 값이 본진 오브젝트가 아닌 유닛 오브젝트에 설정되어 있는 것으로 추측이 됩니다. 혹시라도 유닛 오브젝트에 Tag 값이 BaseBlue라고 설정이 되어 있으시면 본진 오브젝트에 Tag 값을 BaseBlue로 설정해보시면 될 것 같습니다!

 

지속적인 문제가 발생되면 언제든지 질문해주시면 감사하겠습니다!

SeongBaek CHO님의 프로필 이미지
SeongBaek CHO
질문자

사진에 오해가 있을 수 있겠네요. 태그 사진은 상대 본진에 BaseRed로 설정했어요. 그리고 유닛에는 태그가 따로 없구요. 렉이면 좋겠는데 재부팅해도 똑같네요 ㅠ 그리고 도저히 이해가 안되는데 Untagged로 로그가 출력된다는게 의심이 가는데 어디서부터 잡아야 할 지 감이 안 잡히네요.

JEngineer님의 프로필 이미지
JEngineer
지식공유자

이런 경우가 거의 없어서 저도 당장 해답이 나오지 않고 있는 상황인데 질문자님께서 하신 대로라면 문제가 보이지 않고 있습니다..

 

문제가 계속 지속되면 본진 오브젝트를 삭제하고 다시 생성하고 세팅해보는 것도 좋은 방법입니다!

SeongBaek CHO님의 프로필 이미지
SeongBaek CHO
질문자

스크린샷 2025-02-20 오후 9.50.19.png.webp

새로 만든 이미지 객체도 태그를 인식 못 하네요ㅠ

JEngineer님의 프로필 이미지
JEngineer
지식공유자

UnitControl 스크립트 내에 OnTriggerEnter2D가 작성되어 있는게 맞으신가요??

SeongBaek CHO님의 프로필 이미지
SeongBaek CHO
질문자

네!

신기한게 GameObject.FindWithTag로 Test는 찾아지는데, OnTriggerEnter2D(Collider2D collision) 에서는 안 잡히네요  

스크린샷 2025-02-20 오후 10.39.30.png.webp

 

using UnityEngine;

public class UnitControl : MonoBehaviour
{
    [SerializeField] UnitObject unitObject;

    private float speed = 1.5f;
    private bool isCollision = false;

    // private float UnitAttack = 0;

    Animator animator;
    void Start()
    {
        Debug.Log("Start() : " + GameObject.FindWithTag("Test"));
        
        animator = GetComponent<Animator>();
    }

    void FixedUpdate() 
    {
        if (!isCollision)
        {
            transform.Translate(Vector2.right * speed * Time.deltaTime);
            animator.SetFloat("Status", 0.5f);
        }
    }

    private void OnTriggerEnter2D(Collider2D collision) 
    {
        Debug.Log("Collision with object: " + collision.gameObject.name);
        Debug.Log("Object active state: " + collision.gameObject.activeSelf);
        Debug.Log("Tag: " + collision.gameObject.tag);

        if (collision.CompareTag("Test"))
        {
            Debug.Log("Collided with tag 'Test'");
        }
    }
}
JEngineer님의 프로필 이미지
JEngineer
지식공유자

일단 BaseRed Tag값을 다시 설정해주시고, OnTriggerEnter2D 메소드를 다시 작성해주신 다음에 적용 시켜보셔도 될 것 같습니다.

 

BaseRed의 BoxCollider2D에 있는 isTrigger는 비활성화 해주셔야 합니다! 만약 비활성화하신 상태라면 UnTagged로 바꾸었다가 다시 BaseRed로 설정 부탁드립니다!

SeongBaek CHO님의 프로필 이미지
SeongBaek CHO
질문자

와.. 해결되었습니다!

BaseRed 기지는 Rigidbody, Box Collider 2D를 추가를 안 했네요. 영상멈추고 따라하고 넘기고 하다가 지나친것 같습니다ㅠ 끝까지 같이 봐주셔서 감사합니다!

JEngineer님의 프로필 이미지
JEngineer
지식공유자

아닙니다! 해결하셨다니 다행이네요!

 

혹시라도 계속 수강 하시다가 질문사항 있으시면 언제든지 질문해주세요! 감사합니다!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. SeongBaek CHO님.

OnTriggerEnter2D 가 제대로 작동하지 않아 어려움을 겪고 계시는 것 같습니다. 태그 설정은 유니티 내에서 객체를 분류하고 상호작용을 정의할 때 매우 중요한 역할을 합니다. 로그에 “Untagged”라고 찍히는 문제는 보통 태그가 잘못 설정되었거나 객체에 바르게 반영되지 않았을 때 발생합니다. 다음의 사항을 점검해 보시길 권장드립니다:

  1. 태그 확인: Hierarchy 뷰에서 BaseRed 객체를 선택하고 Inspector 뷰에서 태그가 바르게 “BaseRed”로 설정되어 있는지 확인하세요. 태그가 정확히 설정되어 있지 않다면 유니티에서 Add Tag 옵션을 통해 새로운 태그 “BaseRed”를 추가하고 적절히 객체에 할당하셔야 합니다.

  2. 태그 적용 상태 확인: 때로는 태그 변경이 실시간으로 반영되지 않을 수 있습니다. 유니티를 저장하고 작동을 정지시켰다가 다시 실행해 보세요.

  3. 스크립트 문제 확인: 스크립트에서 collision.gameObject.tag를 가져오는 부분이 잘못되지 않았는지 확인하세요. 코드에서 collision.gameObject.tag가 아닌 collision.tag로도 태그를 받을 수 있습니다.

  4. 다른 객체 간섭 여부: 혹시 다른 객체가 Script 또는 다른 상황에서 같은 태그 문제를 일으키고 있는지 확인해 보세요. 규제되지 않은 상황에서 태그 값이 재설정되고 있는지 같은 불확실한 부분을 확인해 보시고 불필요한 상호작용을 피할 필요가 있습니다.

  5. 물리 설정: Rigidbody 2D와 Collider 2D의 트리거 설정이 올바르게 되었는지 확인하세요. 해당 객체의 Rigidbody 2D가 Kinematic인지 확인했지만, Collision Detection의 작동 방식을 필요에 따라 변경해볼 수 있습니다.

만약 위의 방법으로도 문제를 해결하지 못하셨다면 아래 유사한 질문들을 참고하시거나, 궁금한 점이 있다면 추가 질문해 주세요:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.