ํฌํค์ ์ฒ์ ํด๋ณด๋๊ฑฐ๋ผ ๋ฏ์๋ค์..
PunRPC๊ฐย ํ๋ ์ด์ด๋ผ๋ฆฌ ๋๊ธฐํ๋ฅผ ์์ผ์ฃผ๋ ์ญํ ๋ก ์ดํดํ๋๋ฐ..
์ง๋ฌธ1
์ ๊ฐ ํ๊ณ ์ถ์๊ฒ ๋ฐฉ์ฅ์ด ์์์ ๋๋ฅด๋ฉด ๋ค๊ฐ์ดย ์ฌ์ด๋ ๋๋๊ฑด๋ฐ
A๋ผ๋ ํจ์์ย ์ฌ์ด๋ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ย ํจ์๋ช ์์ [PunRPC] ์์ฑ์ ๋ฌ์์ค ๋ค,
photonView.RPC("A", RpcTarget.ํ๊ฒ์ข ๋ฅ) ๋ก ํธ์ถ์ ํ๋๊ฒ ๋ง๋์?
๊ทธ๋ฐ๋ฐ ์ด photonView.RPC(...) ์ฝ๋๋ฅผ ์ด๋์ ์์ฑํ๋๊ฑด์ง ๋ชจ๋ฅด๊ฒ ์ด์..
์ง๋ฌธ2
RpcTarget์ ํ๊ฒ ์ข ๋ฅ ์ฐจ์ด๋ฅผ ๋ด๋ ๋ชจ๋ฅด๊ฒ ์ด์.
์ด๋ค ์ํฉ์ ์ด๋ค ํ๊ฒ์ ์ฌ์ฉํ๋์ง ๊ฐ๋จํ ์๋ฌธ๊ฐ์๊ฒ ์์๊น์?ใ ใ
https://doc.photonengine.com/ko-kr/pun/current/demos-and-tutorials/pun-basics-tutorial/lobby
PhotonNetwork.AutomaticallySyncScene:
์ฐ๋ฆฌ
๊ฒ์์ ํ๋ ์ด์ด ์์ ๋ฐ๋ผ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒฝ๊ธฐ์ฅ์ ๊ฐ๊ฒ ๋ ๊ฒ์ด๊ณ ๋ก๋๋ ์ฌ์ ์ฐ๊ฒฐํ๊ณ ์๋ ๋ชจ๋ ํ๋ ์ด์ด์์ ๋์ผ ํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ Photon์ด ์ ๊ณตํ๋ ๋งค์ฐ ํธ๋ฆฌํ ๊ธฐ๋ฅ์ ์ด์ฉํ ๊ฒ ์ ๋๋ค:PhotonNetwork.AutomaticallySyncScene ์ด ๊ฐ์ด true์ผ ๋ masterclient๋ PhotonNetwork.LoadLevel()์ ํธ์ถ ํ ์ ์๊ณ ๋ชจ๋ ์ฐ๊ฒฐ๋ ํ๋ ์ด์ด๋ค์ ๋์ผํ ๋ ๋ฒจ์ ์๋์ ์ผ๋ก ๋ก๋ ํ ๊ฒ์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค !!
RPC๋ฅผ ํ๋ ์ด์ด๋ผ๋ฆฌ ๋๊ธฐํ ํด์ฃผ๋๊ฑฐ๋ผ๊ณ ํ๋๊ฑด ์ข ๊ทธ๋ ๊ณ , ๋ค๋ฅธ ํด๋ผ์ด์ธํธ์์ ์๊ฒฉ์ผ๋ก ํจ์๋ ํ๋ก์์ ๋ฅผ ํธ์ถํด์ฃผ๋๊ฑฐ์ ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ๋ ์ด์ด์ ํน์ ํ๋๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ ํจ์๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ์์ ๋์ผํ๊ฒ ํ์๋์ด์ผ ํ๋๊น RPC๋ฅผ ํตํด์ ๋ชจ๋ ํด๋ผ์ด์ธํธ์๊ฒ "A" ์บ๋ฆญํฐ๊ฐ "Do()"๋ฅผ ํ๋๋ก ์คํ์์ผ์ฃผ๋๊ฑฐ์
์์ฒ๋ผ PhotonNetwork.LoadLevel()์ ์ฐ๋ฉด ํธํ๊ฒ ๊ตฌํ ๊ฐ๋ฅํ๋ฐ, ์ ๊ธฐ๋ฅ์ PhotonNetwork์AutomaticallySyncScene๊ฐ์ด true์ผ๋๋ง ์๋ํจ ์๋ง ๊ธฐ๋ณธ๊ฐ์ด true ์๋๊ฑธ๋ก ๊ธฐ์ตํจ ํ์ง๋ง ์ ๊ธฐ๋ฅ์ ์์ฐ๊ณ ์ง์ ๊ธฐ๋ฅ ๊ตฌํ์ ํ๊ฒ ๋ค๊ณ ํ๋ฉด ์ฌ์ ๋ถ๋ฌ์ค๋ ์์ ์ด ๋ฏธ๋ฆฌ ์ ์๋์ด ์์๊ฑฐ์ (๋ชจ๋ ํ๋ ์ด์ด๊ฐ ์ค๋น, MasterClient๊ฐ ๊ฒ์ ์์) ์ด ๋ถ๋ฌ์ค๋ ์์ ์ ํด๋น ํ๋ ์ด์ด์ PhotonView์์ RPC๋ฅผ ํธ์ถํด์ฃผ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋จ.
ex) ๊ฒ์์์() if (PhotonNetwork.isMasterClient) - ๋ง์คํฐ ํด๋ผ์ด์ธํธ๊ฐ ๊ฒ์์์ ๋ฒํผ์ ๋๋ ๋ค๋ฉด MasterClient.photonView.RPC("LoadScene", RpcTargetAllBuffered, "ํ๋ผ๋ฏธํฐ๋ค"...) -๋ชจ๋ ํ๋ ์ด์ด๊ฐ LoadScene()์ ์คํํ๋ค.
ํ๊ฒ ์ข ๋ฅ๋ ํด๋น ์ฌ์ง์์ ๋์จ๊ฒ ์์ฒญ ์ ์ ํ ์ค๋ช ์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ. All ๋ชจ๋ ํ๋ ์ด์ด๊ฐ ์คํํ๋ค. ๋์ฒด์ ์ผ๋ก ์์ฃผ ์ฌ์ฉํจ AllBuffered ๋ชจ๋ ํ๋ ์ด์ด๊ฐ ์คํํ๋๊ฒ์ ๋์ผํ์ง๋ง, ๋ง์ฝ ๊ฒ์์์ ๋๊ฐ๋ค๊ฐ ๋์ ์ ์ง์ํ ์์ ์ด๋ผ๋ฉด ์ ์์ค์ด์ง ์์์๋ ๋ฐ์ํ ์ด๋ฒคํธ์ง๋ง ๋ฌด์กฐ๊ฑด ํธ์ถ์ด ํ์ํ ์ด๋ฒคํธ๋ผ๋ฉด ๊ทธ๋ ์ฌ์ฉํจ ex) ์ผ์ ์๊ฐ๋ง๋ค ๋ชจ๋ ํ๋ ์ด์ด๊ฐ ๋์ผํ๊ฒ ๋ ๋ฒจ์ด 1 ์ฆ๊ฐํ๋ค. -> ๋์ค์ ๋ค์ด์จ ์ฌ๋๋ ์ด ์ด๋ฒคํธ๋ค์ ์คํ์์ผ์ ๋ ๋ฒจ์ ๋ง์ถฐ์ค๋ค.
AllBufferedViaServer ์์์ ๋งํ๊ฒ์ฒ๋ผ ๋ฒํผ์ ์ ์ฅํ๋ ๋ถ๋ถ์ ๋์ผํจ. ๊ทธ๋ฐ๋ฐ ๋ฌ๋ ๊ฒ์์์ ์นด์ดํธ ๋ค์ด์ฒ๋ผ ๋์ผํ ์์ ์ ์คํ๋์ด์ผ ํ๋ ๋ฉ์๋๋ค์ด ์์ ์ด๋ด๋ ํฌํค ๋คํธ์ํฌ ์๋ฒ๋ฅผ ๊ฑฐ์ณ์ ์คํ ์์ ์ ๋ง์ถฐ์ค
AllViaServer ์์์ Buffer๊ธฐ๋ฅ๋ง ๋น ์ง MasterClient Room์ ์ด๋๊ธฐ๋ฅ์ ๋ง๋ ๋ค ์๊ฐํ ๋ ๋ฐฉ์ฅ์ด ์๋ ์ธ์์ด ๋ค๋ฅธ ํ๋ ์ด์ด๋ฅผ ์ด๋ํ๋ค๋ฉด ๋ฐฉ์ฅ์๊ฒ ํ์ธ์ ๋ฐ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ ์ฌ์ฉํ๋ ๊ฒ ์ฒ๋ผ ๋ง์คํฐ ํด๋ผ์ด์ธํธ์๊ฒ๋ง ํจ์๋ฅผ ์คํ์์ผ์ผ ํ ๋ ์ฌ์ฉํจ
Others ๋ ์คํํ ํ์๊ฐ ์์ง๋ง, ๋จ๋ค์ ์คํ์์ผ์ผ ํ๋ ํจ์๋ค์ ์ฌ์ฉํ ๋ ์๋ฅผ๋ค๋ฉด ํน์ ํ๋์ ํ๋ฉด ๋๋ฅผ ์ ์ธํ ํ๋ ์ด์ด๋ค์๊ฒ ํ๋ฉด์ ๊ฐ๋ฆฌ๋ ํจ๊ณผ๋ฅผ ๋ง๋ค๋(๋ฐฉํดํจ๊ณผ)} OtherBuffereed ์ ํ๋์ Buffer๋ฅผ ์ฌ์ฉํด์ผํ ๊ฒฝ์ฐ - ๋น์ฅ์ ์ด๋์ ์ฌ์ฉํด์ผํ๋์ง ์์๋ฅผ ๋ค์ด์ฃผ๊ธด ํ๋ค์ง๋ง ์ด๋๊ฐ ์ฐ์
๊ฐ์ฌํฉ๋๋ค ์ ๋ณด๊ฐ ๋ง์ด ์์ด์ ํ๋ค์๋๋ฐ ๋๋ถ์ ์ดํด๊ฐ ๋์ต๋๋คใ ใ