VRChat 마이너 갤러리 저장소

제 목
강좌/정보 백업)Udon 강좌 2 - 변수 동기화(synced)
글쓴이
조개껍데기
추천
3
댓글
4
원본 글 주소
https://gall.dcinside.com/vr/393278
  • 2020-04-08 12:15:42
							

1편 : Udon 강좌 - 1 온오프 물체 만들기 https://gall.dcinside.com/m/vr/337377


위에서 강좌를 보고 왔다면, 변수를 이용하여 거울을 온 오프 하는 방법을 알았을 것이다. 안봤다면 꼭 보자. 이해 못할 수도 있다.


위의 강좌는 버튼을 누르면 자신만 거울이 꺼졌다 켜진다. 


그렇다면 모두에게 보이게 하거나, 방장만 누를 수 있는 버튼을 만드는 방법을 알아보자.


해당 노드는 전에 쓴 강좌에서 만든 노드를 조금 수정한 것이다.


차이점이라면 Set Active함수를 Interact와 연결하지 않았고, Late Update 함수와 연결한 것이다.


Late Update는 실시간으로 실행하게 하는 이벤트이다. (단 Update보다는 느리게 실행한다.)


Late Update인 이유 ) 위에서 Set Variable로 switch변수를 바꿨다. 근데 만약 Late Update가 아니라 Update일 경우 순서가 바뀌어서 실행 될 수 있기 때문에 정확성을 위해 Late Update로 하는 것이다.


동작은 동일하다. 하지만 이번에 배울 변수 동기화를 위해서는 위와 같이 짜는 게 좋다.


1. 방장만 누를 수 있는 버튼 만들기. ex)노래방의 노래 선택 버튼


해당 기능은 유니티 2018버전 이전에 VRCSDK2를 이용한 Local이라던가 Owner이라던가를 설정하는 것과 같다. (누구에게 이벤트를 동기화 할 것인가)


이는 BroadCast Type이라고 한다. https://gall.dcinside.com/m/vr/391795 Udon에서는 좀 다르게 구현해야한다.


이를 구현하는 방법에 대해 알아보자.



위에서 이미 짠 노드를 보면 Switch변수에 따라 거울이 꺼지고 켜지는 것을 확인할 수 있다.


Switch변수를 보면 synced라는 체크 박스가 있는데 이를 체크하게 되면 된다.


방장 버튼을 만드려면 그저 저것만 체크하면 끝이다. 



정확한 원리) Synced를 체크하면 방장의 Switch변수를 다른 플레이어의 Switch변수와 네트워크를 통해 동기화 한다고 보면 된다.


만약 방장이 아닌 플레이어가 누를 경우 자신 고유의 Switch변수는 변경되지만 방장이 아니므로 Switch변수는 다른 사람과 공유 되지 않는다. 

공유 되지 않았으면, 주기적으로 방장의 Switch변수로 덮어 씌워지기 때문에 방장외에는 눌러도 반응이 없는 것으로 보이는 것이다.


만약 방장이라면 자신 고유의 Switch변수가 변경되고, 다른 플레이어게 자신의 Switch변수 값을 공유하므로 방장만 누를 수 있는 것처럼 보이는 것이다.




2.모두에게 공유 되는 변수 만들기.



위의 노드에서 단 두개, Networking Get Local Player와 Networking Set Owner을 추가 하였다.


이는 Add node에서 VRCSDK3 - VRCSDKBaseNetworking쪽에서 찾을 수 있다. 아니면 검색하던가


원리는 버튼을 누르면 현재 로컬 플레이어를 방장으로 만드는 것이다. 방장이 되면 위에서 설명한 원리대로 모두에게 Switch변수가 공유 될 것이다.


다만 이 방법의 경우 되긴 되는데... 버튼을 두번 눌러야한다. 이는 Set Owner가 Set Varaible보다 늦게 완료되는 게 이유인 것으로 추정한다.


버그인지 의도된건진 모르겠는데 좀 더 나은 방법을 알아내면 후에 작성함.



koper2004 ㅋㅋ 2020.04.08 12:16:02
koper2004 2020.04.08 12:16:03
조개껍데기 뭐 새꺄 2020.04.08 12:17:18
정말모르겠다 고생했네, 그러면 저게 지금 저댄방에있는거랑 비슷한 로직구조임? 2020.04.08 12:23:09
번호 분류 제목 글쓴이 날짜 추천
393450 일반 커미션 이정도 퀄이면 얼마쯤 예상해야됨? 2 ㅇㅇ 110.70 2020-04-08 0
393449 일반 내일은 저댄방을 가볼가 1 플라랑 2020-04-08 0
393448 일반 자기전에 댓글 읽기할래 13 ㅇㅇ 117.111 2020-04-08 0
393447 질문 바이브 HDMI에서 DP로 선 바꾸고 나서 VR안켜진다 4 [피자] 2020-04-08 0
393446 일반 오늘은 재밋는 묵언풀트엿당 1 플라랑 2020-04-08 0
393445 일반 피리나 발넘조아 쥬지.뷰지 2020-04-08 0
393444 일반 비트세이버월드 꿀잼이다 ㅋㅋㅋ 5 츄르 2020-04-08 0
393443 일반 이게임 접을려구해 14 ㅇㅇ 119.71 2020-04-08 16
393442 강좌/정보 포이요미 플립북 이미지 좌표찾는 아주 쉬운 방법 1 야리 2020-04-08 6
393441 일반 뱃속의 악마가 모두 나온거 같다 2 kawaimomo 2020-04-08 0
393440 일반 손하사이후로 손흥민보고 처음웃엇네 ㅋㅋㅋ 2 ㅇㅇ 112.186 2020-04-08 2
393439 일반 방송인 p 아바타는 누가 만들어주는거임? 6 ㅇㅇ 211.211 2020-04-08 0
393438 일반 너굴 아바타 월드 아는사람? 3 반다이몰 2020-04-08 0
393437 일반 1주일이면 ㄹㅇ 에반데;; 우동강좌도 있지 않았음? 해피밀트왈라 2020-04-08 0
393436 일반 트래커가 2개밖에 인식이 안돼요 3 뉴비 124.56 2020-04-08 0
393435 일반 몰라 커미션안할래 5 김꽁초 2020-04-08 0
393434 일반 장어 복숭아 먹어봐 2 kawaimomo 2020-04-08 0
393433 일반 아바타좀 키워라 패도들아 1 츄르 2020-04-08 0
393432 일반 뭔데 내뚜따커미션글어디감!!! 3 김꽁초 2020-04-08 0
393431 일반 운동하고 갤왓더니 여전히 씹창나잇네 ㅋㅋ 1 멚져 2020-04-08 1
393430 일반 ??? : 뭐 개념글 3개월치 삭제됬다고? 1 아카프론 2020-04-08 8
393429 일반 프로무선vs인덱스=인덱스 승 ㅇㅇ 121.183 2020-04-08 0
393428 강좌/정보 [강좌]포이요미 플립북! 우클했는데 포이요미 안나올때 4 야리 2020-04-08 11
393427 일반 유선으로 도는거는 포기했다 1 타입문 2020-04-08 1
393426 일반 지듣노 EMoTcoN_ 2020-04-08 0
393425 일반 무선이 글케 편리함? 6 ㅇㅇ 39.119 2020-04-08 0
393424 일반 저댄방 사람 엄청많네 2 은발 2020-04-08 0
393423 일반 5개쓰고 도배로 차단당했노 ㅇㅇ 2020-04-08 0
393422 일반 브얄끼면 이제 눕기만 한다 2 레드밀키스 2020-04-08 0
393421 일반 『 공자: 그러면 슬픈 꿈이었느냐? 』 1 ㅇㅇ 175.200 2020-04-08 0
393420 일반 『 제자: 아닙니다. 』 ㅇㅇ 175.200 2020-04-08 0
393419 일반 『 공자: 무서운 꿈이었느냐? 』 ㅇㅇ 175.200 2020-04-08 0
393418 일반 『 제자: 꿈을 꾸었습니다 』 ㅇㅇ 175.200 2020-04-08 0
393417 일반 『 공자: 왜 울고 있느냐?.... 』 ㅇㅇ 175.200 2020-04-08 0
393416 일반 점심때 장어구이.후식 민초 3 kawaimomo 2020-04-08 0
393415 일반 vr챗에 새로운 사진찍기기능나왓음? 2 타입문 2020-04-08 0
393414 일반 본인 플레이시간 600시간 까지 2시간 2 ㅇㅇ 117.111 2020-04-08 0
393413 일반 대통령님 쓰다듬겟습니다. 3 아카프론 2020-04-08 13
393412 일반 그리운짤 1 ㅇㅇ 125.139 2020-04-08 1
393411 일반 바이브프로무선 vs 밸브인덱스 2 ㅇㅇ 39.119 2020-04-08 0
념글 삭제글 갤러리 랭킹