해결된 질문
작성
·
119
·
수정됨
답변 2
1
질문 감사합니다!
사진으로 보내주신 컴포넌트들과 설정하신 Tag 값이 본진 오브젝트가 아닌 유닛 오브젝트에 설정되어 있는 것으로 추측이 됩니다. 혹시라도 유닛 오브젝트에 Tag 값이 BaseBlue라고 설정이 되어 있으시면 본진 오브젝트에 Tag 값을 BaseBlue로 설정해보시면 될 것 같습니다!
지속적인 문제가 발생되면 언제든지 질문해주시면 감사하겠습니다!
이런 경우가 거의 없어서 저도 당장 해답이 나오지 않고 있는 상황인데 질문자님께서 하신 대로라면 문제가 보이지 않고 있습니다..
문제가 계속 지속되면 본진 오브젝트를 삭제하고 다시 생성하고 세팅해보는 것도 좋은 방법입니다!
네!
신기한게 GameObject.FindWithTag로 Test는 찾아지는데, OnTriggerEnter2D(Collider2D collision) 에서는 안 잡히네요
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'");
}
}
}
일단 BaseRed Tag값을 다시 설정해주시고, OnTriggerEnter2D 메소드를 다시 작성해주신 다음에 적용 시켜보셔도 될 것 같습니다.
BaseRed의 BoxCollider2D에 있는 isTrigger는 비활성화 해주셔야 합니다! 만약 비활성화하신 상태라면 UnTagged로 바꾸었다가 다시 BaseRed로 설정 부탁드립니다!
와.. 해결되었습니다!
BaseRed 기지는 Rigidbody, Box Collider 2D를 추가를 안 했네요. 영상멈추고 따라하고 넘기고 하다가 지나친것 같습니다ㅠ 끝까지 같이 봐주셔서 감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다. SeongBaek CHO님.
OnTriggerEnter2D
가 제대로 작동하지 않아 어려움을 겪고 계시는 것 같습니다. 태그 설정은 유니티 내에서 객체를 분류하고 상호작용을 정의할 때 매우 중요한 역할을 합니다. 로그에 “Untagged”라고 찍히는 문제는 보통 태그가 잘못 설정되었거나 객체에 바르게 반영되지 않았을 때 발생합니다. 다음의 사항을 점검해 보시길 권장드립니다:
태그 확인: Hierarchy 뷰에서 BaseRed
객체를 선택하고 Inspector 뷰에서 태그가 바르게 “BaseRed”로 설정되어 있는지 확인하세요. 태그가 정확히 설정되어 있지 않다면 유니티에서 Add Tag
옵션을 통해 새로운 태그 “BaseRed”를 추가하고 적절히 객체에 할당하셔야 합니다.
태그 적용 상태 확인: 때로는 태그 변경이 실시간으로 반영되지 않을 수 있습니다. 유니티를 저장하고 작동을 정지시켰다가 다시 실행해 보세요.
스크립트 문제 확인: 스크립트에서 collision.gameObject.tag
를 가져오는 부분이 잘못되지 않았는지 확인하세요. 코드에서 collision.gameObject.tag
가 아닌 collision.tag
로도 태그를 받을 수 있습니다.
다른 객체 간섭 여부: 혹시 다른 객체가 Script 또는 다른 상황에서 같은 태그 문제를 일으키고 있는지 확인해 보세요. 규제되지 않은 상황에서 태그 값이 재설정되고 있는지 같은 불확실한 부분을 확인해 보시고 불필요한 상호작용을 피할 필요가 있습니다.
물리 설정: Rigidbody 2D와 Collider 2D의 트리거 설정이 올바르게 되었는지 확인하세요. 해당 객체의 Rigidbody 2D가 Kinematic인지 확인했지만, Collision Detection의 작동 방식을 필요에 따라 변경해볼 수 있습니다.
만약 위의 방법으로도 문제를 해결하지 못하셨다면 아래 유사한 질문들을 참고하시거나, 궁금한 점이 있다면 추가 질문해 주세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
사진에 오해가 있을 수 있겠네요. 태그 사진은 상대 본진에 BaseRed로 설정했어요. 그리고 유닛에는 태그가 따로 없구요. 렉이면 좋겠는데 재부팅해도 똑같네요 ㅠ 그리고 도저히 이해가 안되는데 Untagged로 로그가 출력된다는게 의심이 가는데 어디서부터 잡아야 할 지 감이 안 잡히네요.