10
클클클클클클클 클클 클클 클클클

유니티와 C# 서버에서 프라우드넷 사용하기 - 2

Embed Size (px)

Citation preview

Page 1: 유니티와 C# 서버에서 프라우드넷 사용하기 - 2

클라이언트에서 나무 심기넷텐션

Page 2: 유니티와 C# 서버에서 프라우드넷 사용하기 - 2

클릭 처리• 월드에 평면 (plane) 이 존재• 평면에 마우스를 찍으면• 마우스를 찍은 곳에 나무를 배치

– screen position to ray 와 평면의 교차점에

Page 3: 유니티와 C# 서버에서 프라우드넷 사용하기 - 2

// 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; }

Page 4: 유니티와 C# 서버에서 프라우드넷 사용하기 - 2

나무 심기의 메시징 및 처리

클라이언트 서버2. 나무 심고 싶다 ( 요청 )

4. 나무 심어졌다 통보

1. click!

3. 나무 개체 생성5. 나무 개체 생성

Page 5: 유니티와 C# 서버에서 프라우드넷 사용하기 - 2

나무 없애기• 나무 심기와 마찬가지

클라이언트 서버2. 나무 없애고 싶다 ( 요청 )

4. 나무 없어졌다 통보

1. click!

3. 나무 개체 제거5. 나무 개체 제거

Page 6: 유니티와 C# 서버에서 프라우드넷 사용하기 - 2

네트워크 동기화

Page 7: 유니티와 C# 서버에서 프라우드넷 사용하기 - 2

서버 프로세스의 메모리홍가네 마을

나무 1

나무 2

P2P ID=15

홍길동홍길동강부자

강씨네 민속촌나무 66

나무 78

P2P ID=16

강부자

자신이 소속된 Ville

자신이 소속된 Ville

Page 8: 유니티와 C# 서버에서 프라우드넷 사용하기 - 2

오브젝트 동기화• 새 클라가 Ville 에 참가– Ville 내 기존 오브젝트들을 새 클라에게 알림

• 새 오브젝트가 Ville 에 추가– Ville 내 클라들에게 오브젝트 생김을 알림

• 오브젝트를 Ville 에서 제거– Ville 내 클라들에게 오브젝트 소멸을 알림

Page 9: 유니티와 C# 서버에서 프라우드넷 사용하기 - 2

• Ville 안에 있는 모든 클라이언트 각 Ville 의 P2P Group 에 모두 넣음• 이따가 , Ville 내 오브젝트들을 동기화하는데 사용됨• 여러분도 굳이 이렇게 만드실 필요는 없지만 , 뒤에서 P2P 통신을 보여주기 위해 미리 이렇게 했을 뿐

Page 10: 유니티와 C# 서버에서 프라우드넷 사용하기 - 2

P2P 그룹

• P2P 통신이 서로 가능한 클라이언트의 집합• 서버가 P2P 그룹을 통제

P2P 그룹 = 메신저 채팅창