본문으로 바로가기

OVR 제작 모델링 + Photon View 동기화

category Photon 2022. 10. 19. 16:00
제작 모델링 오브젝트일 경우
1). Hierarchy창에 우클릭 후 Create Empty하여 빈 GameObject 생성(원하는 이름으로 변경, 예제 = TestHorse)
2). 해당 오브젝트(TestHorse) 안에 Touch hand Grab Interactable, Rigidbody, Grabbable, Physics Grabbable, Respawn On Drop 스크립트 추가
3). TestHorse(부모)에 Chesshorse(자식), Chesshorse_Collider(자식) 추가
 
4). Chesshorse_Collider에 Mesh Filter(Mesh는 꼭 기본 Cube로 설정하기)와 Box Collider 추가
    Box Collider은 잡을 수 있는 범위라서 영역을 적절하게 조절하기, Is Trigger 체크하기 
-Collider 주의사항 참고
 

5). TestHorse(부모)에서 위 사진과 동일하게 설정 

Touch Hand Grab Interactable - Pointable Element에 TestHorse(자기 자신)을 드래그 드롭
                                                       bounds collider에 Chesshorse_Collider(자식)를 드래그 드롭 
Grabbable - Transfer On Second Selection 체크
Physics Grabbable - Grabbable과 Rigidbody에 TestHorse(자기 자신)을 드래그 드롭
Respawn On Drop - 0.1로 설정 (만약 Rigidbody에 Use Gravity 꺼져있다면 꼭 체크하기)
 
6). 만약 적용할 모델링 조각이 한 개일 때, Chesshorse(모델링 된 오브젝트)에 Mesh Collider 추가하기(Convex 체크)
    (적용할 모델링이 한 개 이상일 때는 아래 설명을 참고)
7-1). 만약 적용할 모델링 조각이 한 개 이상일 때, 빈 오브젝트 생성 후 KnightCollider(원하는 이름:부모)로 변경하기
         KnightCollider(부모)안에 ConvexHullPart(자식) 생성하기 ← 자식은 모델링 파트 수만큼 생

7-2). ConvexHullPart(자식 : 모델링 된 오브젝트 조각)에 Mesh Collider 생성(Mesh는 모델링과 맞게 설정)
7-3). TestHorse(최상위 부모)의 Touch Hand Grab Interactable - Colliders에 Hierarchy창에 있는 ConvexHullPart를 하나씩 드래그 드롭
-Collider 주의사항 참고

Photon으로 오브젝트 동기화하는 방법
1). 잡는 기능을 가진 오브젝트를 동기화시킬 때

잡을 수 있는 범위를 가진 오브젝트, 즉 BoxCollider를 가지고 있는 Obeject 안에

Photon View, Photon Transform View, Pun OVR Grabbable 스크립트 추가
 
Photon View : 
Ownership Transfer - TrakeOver
Synchronization - Unreliable On Change
Observable Search - Manual (이때 Observable Components는 자기 자신(해당 스크립트를 가지고 있는 오브젝트)으로 하기)
→ 드래그 드랍 시 Photon Transform View 스크립트 자동 생성
 
Photon Transform View :
Position - Check, Rotation - Check, Use Local - Uncheck

Pun OVR Grabbable :
Allow Offhand Grab - Check

Rigidbody 추가(설정 Interpoliate로 변경), boxcollider 추가

 

 

Collider 주의사항

Bounds Collider - 물체를 잡기 위한 공간 [ Is Trigger (on) ]
* 여유 공간 *Is Trigger를 켜야 물체가 밀리지 않음
 
Colliders - 실제로 물체가 잡히는 공간 [ Is Trigger (off) ]
*Bounds Collider 보다 작은 공간 *Is Trigger가 꺼져 있어야 물체를 통과 하지 않고 잡힘