Data Streaming - cheona-thousand-man/Unity-myBasics-Wiki GitHub Wiki
-
ํ๋ ์ด์ด๊ฐ ๋ง๋ ๋งต๊ณผ ๊ฐ์ด ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์กํด์ผ ํ ๊ฒฝ์ฐ
-
๋ถ์ ํฉ
๋คํธ์ํฌ ์์ฑ(Networked Properties), ์๊ฒฉ ํ๋ก์์ ํธ์ถ(Remote Procedure Calls, RPCs) -
์ ํฉ
Fusion์ ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ API ์ฌ์ฉ
-
-
NetworkRunner
์SendReliableDataToPlayer
์SendReliableDataToServer
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํฐ ๋ฐ์ดํธ ๋ฐฐ์ด ์ ์ก
// ์ ์กํด์ผ ํ ํฐ ๋ฐ์ดํฐ
byte[] largeData = new byte[10000];
// ๋ฐ์ดํฐ๋ฅผ ์ํ ๊ณ ์ ํค๋ก 4๊ฐ์ ์ซ์๋ฅผ ์ ๊ณต
var key = ReliableKey.FromInts(42, 0, 0, 0);
// ๊ณต์ ๋ชจ๋์์ ๋๋ ์๋ฒ/ํธ์คํธ๋ก ํ๋ ์ด์ด์๊ฒ ๋ฐ์ดํฐ ์ ์ก
runner.SendReliableDataToPlayer(playerRef, key, largeData);
// ํด๋ผ์ด์ธํธ๋ก์ ์๋ฒ/ํธ์คํธ์ ๋ฐ์ดํฐ ์ ์ก
runner.SendReliableDataToServer(key, largeData);
- ๋ฐ์ดํฐ๋ ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ๋๋์ด์ ธ์ ์๋ฒ/๋์ ํด๋ผ์ด์ธํธ๋ก ์คํธ๋ฆฌ๋ฐ๋ ํ ์ฌ์กฐ๋ฆฝ
- ์ ์ฒด ๋ฐ์ดํฐ๊ฐ ์์ ๋๋ฉด, INetworkRunnerCallbacks.OnReliableDataReceived ์ฝ๋ฐฑ ํธ์ถ
- ๋ฐ์ดํฐ ์ ์ก ์ํ๋ฅผ ์ถ์ ํ๊ธฐ ์ํ ๋ณ๋์ ์ฝ๋ฐฑ ์ ๊ณต
public void OnReliableDataReceived(NetworkRunner runner, PlayerRef player, ReliableKey key, ArraySegment<byte> data) { }
public void OnReliableDataProgress(NetworkRunner runner, PlayerRef player, ReliableKey key, float progress) { }
์ฌ๋ฌ ๋ฐ์ดํฐ ์งํฉ์ ๋ณ๋ ฌ๋ก ์คํธ๋ฆฌ๋ฐํ ์ ์์ผ๋ฉฐ, ๊ฐ ๋ฐ์ดํฐ ์งํฉ์ 16๋ฐ์ดํธ์ ํค(๋ค ๊ฐ์ int ๋๋ ๋ ๊ฐ์ ulong์ผ๋ก ์์ฑ๋จ)๋ก ์๋ณ