Upload
hyunjik-bae
View
2.144
Download
6
Embed Size (px)
Citation preview
클라이언트에서 나무 심기넷텐션
클릭 처리• 월드에 평면 (plane) 이 존재• 평면에 마우스를 찍으면• 마우스를 찍은 곳에 나무를 배치
– screen position to ray 와 평면의 교차점에
// determine if clicked (release button) bool pushing = Input.GetMouseButton(0); bool clicked = Input.GetMouseButtonUp(0);
// pick object var ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; GameObject pickedObject = null; if (Physics.Raycast(ray, out hit)) { pickedObject = hit.transform.root.gameObject; }
나무 심기의 메시징 및 처리
클라이언트 서버2. 나무 심고 싶다 ( 요청 )
4. 나무 심어졌다 통보
1. click!
3. 나무 개체 생성5. 나무 개체 생성
나무 없애기• 나무 심기와 마찬가지
클라이언트 서버2. 나무 없애고 싶다 ( 요청 )
4. 나무 없어졌다 통보
1. click!
3. 나무 개체 제거5. 나무 개체 제거
네트워크 동기화
서버 프로세스의 메모리홍가네 마을
나무 1
나무 2
P2P ID=15
홍길동홍길동강부자
강씨네 민속촌나무 66
나무 78
P2P ID=16
강부자
자신이 소속된 Ville
자신이 소속된 Ville
오브젝트 동기화• 새 클라가 Ville 에 참가– Ville 내 기존 오브젝트들을 새 클라에게 알림
• 새 오브젝트가 Ville 에 추가– Ville 내 클라들에게 오브젝트 생김을 알림
• 오브젝트를 Ville 에서 제거– Ville 내 클라들에게 오브젝트 소멸을 알림
• Ville 안에 있는 모든 클라이언트 각 Ville 의 P2P Group 에 모두 넣음• 이따가 , Ville 내 오브젝트들을 동기화하는데 사용됨• 여러분도 굳이 이렇게 만드실 필요는 없지만 , 뒤에서 P2P 통신을 보여주기 위해 미리 이렇게 했을 뿐
P2P 그룹
• P2P 통신이 서로 가능한 클라이언트의 집합• 서버가 P2P 그룹을 통제
P2P 그룹 = 메신저 채팅창