Unity 볼 롤링 튜토리얼 3-2.Pick Up 객체 수집
이 기사의 대상자
OS나 환경이라든가
보충
공식
아이템 획득
아이템과 플레이어가 충돌했을 때 취득하는 처리를 한다
오랫동안 숨겨진 플레이어 객체를 시각화
PlayerController.cs를 열고 OnTriggerEnter 메서드로 충돌 결정 구현
태그 설정
오브젝트에 태그명을 붙여 판별하기 위해, 준비를 실시한다
현재는 「Untagged」가 되어 있으므로, 태그를 추가해 부여한다
Add Tag에서 "Pick Up"태그 추가
이제 프로젝트에 새 태그가 생성되었으므로 Pick Up의 Prefab에 태그를 설정합니다.
Prefab을 이용하고 있기 때문에, 게임내의 12개의 Pick Up 오브젝트에도 같은 태그가 부여된다
Collider에 대해 트리거를 설정하여 충돌 감지를 OnTriggerEnter 메서드로 감지 할 수 있습니다.
※왜 트리거를 설정할 필요가 있는지는 공식 동영상의 9:51~11:51 정도까지를 볼 필요가 있습니다
PlayerController.cs에 충돌 판정용 코드 추가
PlayerController.csprivate void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Pick Up"))
{
other.gameObject.SetActive(false);
}
}
이대로 플레이했을 때, 확실히 플레이어와 아이템이 충돌했을 때에 아이템이 비표시가 된다
그러나 문제가 있으며 Unity는 특성상 정적 Collider에 대한 영역 정보 캐시를 유지합니다.
본래라면, 정적이므로 캐시 정보는 재계산 등이 필요 없게 되므로 매우 좋지만 이번은 아이템이 회전하기 때문에
매번 캐시하는 것은 매우 낭비
Collider와 Rigidbody가 모두있는 게임 객체는 모두 동적으로 간주되므로 Rigidbody 추가
추가하면 동적 Collider로 인식되지만 중력을 느끼게 되므로 바닥을 빠져 버린다
이를 위해 Is Kinematic에 체크를 하여 오브젝트를 물리 연산의 영향을 받지 않게 한다
Reference
이 문제에 관하여(Unity 볼 롤링 튜토리얼 3-2.Pick Up 객체 수집), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/win-chanma/items/45c7287f152cb1bb0600
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Pick Up"))
{
other.gameObject.SetActive(false);
}
}
Reference
이 문제에 관하여(Unity 볼 롤링 튜토리얼 3-2.Pick Up 객체 수집), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/win-chanma/items/45c7287f152cb1bb0600텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)