'Collision2D'에는 'tag'에 대한 정의가 포함되어 있지 않고, 'Collision2D' 형식의 첫 번째 인수를 허용하는 액세스 가능한 확장 메서드 'tag'이(가) 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요. (CS1061)
OnCollision메소드에서 other.tag를 사용하려고 하니 에러가 발생했다
OnCollision 메소드와 OnTrigger 메소드 간의 차이가 있다면 각각 Collision2D와 Collider2D 타입의 변수를 받아온다는 건데,
https://docs.unity3d.com/ScriptReference/Collider2D.html
https://docs.unity3d.com/ScriptReference/Collision2D.html
각각 Collider2D와 Collision2D에 대한 유니티 공식 문서다
확인해 보면 Collider2D는 속성으로 tag를 가지고 있지만
Collision2D는 tag가 아니라 속성으로 Collider을 가지고 있다
Collision2D는 물리적인 상호작용이 필요하기 때문에 Collider2D보다 많은 정보를 가지고 있고, 그래서 Collision2D 타입의 변수에서 바로 tag 속성을 꺼낼 수 없었던 것이다...
따라서 뒤에 Collision2D 내에 있는 gameObject에서 tag 속성을 꺼내주면 된다
gameObject 대신 Collider를 사용해도 작동은 되지만 그냥 gameObject로 받으면 될 것 같다
'Programing > Unity(C#)' 카테고리의 다른 글
[Coding] if return 문의 코딩 스타일(Early Return) (0) | 2023.12.31 |
---|---|
[Unity] Scene 화면에 보이는 컴포넌트 아이콘 크기 축소하기 (0) | 2023.12.30 |
VSCode Unity 자동 완성이 안 되는 문제 (0) | 2023.11.25 |
Edge Collider 2D 적용이 제대로 되지 않는 문제 (0) | 2023.11.04 |
Unity Remote 5 연결 (0) | 2023.05.17 |