Data Transfer - cheona-thousand-man/Unity-myBasics-Wiki GitHub Wiki

๊ฐœ์š”

Fusion์—์„œ Peer ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์ฃผ์š” ์ˆ˜๋‹จ

image

๋„คํŠธ์›Œํฌ ์†์„ฑ (Neworked Properties)

  • [Networked] ์†์„ฑ์ด ์žˆ๋Š” NetworkBehaviour์˜ ์†์„ฑ
    • ์ƒํƒœ
    • ํ•ด๋‹น ๊ฐ’์€ StateAuthority Peer์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  Peer๋กœ ์ž๋™์œผ๋กœ ๋ณต์ œ

์›๊ฒฉ ์ ˆ์ฐจ ํ˜ธ์ถœ (RPC)

  • [Rpc] ์†์„ฑ์ด ์žˆ๋Š” NetworkBehaviour์˜ ๋ฉ”์„œ๋“œ
    • ํ˜ธ์ถœ ์‹œ, ํ•ด๋‹น ๋ฉ”์„œ๋“œ๊ฐ€ Room์˜ ๋‹ค๋ฅธ Peer์—์„œ ์‹คํ–‰
    • ์ด๋Š” ๊ทผ๋ณธ์ ์œผ๋กœ Message Wrapper์ด๋ฉฐ ํฐ Payuload ์‚ฌ์šฉ ๊ธˆ์ง€

๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ (Data Streaming)

  • RPC๋ฅผ ํ†ตํ•ด ๋™๊ธฐํ™”ํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ํฐ(Payload) ๋ฐ์ดํ„ฐ๋Š” Fusion์˜ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ๋” ์ž‘์€ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๋Œ€์ƒ Peer์—์„œ ๋‹ค์‹œ ์กฐ๋ฆฝ

ํ”Œ๋ ˆ์ด์–ด ์ž…๋ ฅ (Player Input)

์„œ๋ฒ„ ํด๋ผ์ด์–ธํŠธ ๋ชจ๋“œ์—๋งŒ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ ๊ณต์œ  ์„œ๋ฒ„ ๋ชจ๋“œ์—์„œ๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ
  • INetworkRunnerCallbacks.OnInput ์ฝœ๋ฐฑ
    • ๋งค Tick๋งˆ๋‹ค ์ˆ˜์ง‘๋œ ์ž…๋ ฅ์€ ์„œ๋ฒ„๋กœ ๋ณต์ œ
    • ์ด๋Ÿฌํ•œ ์ž…๋ ฅ์€ ๋ฒ„ํผ์— ์ €์žฅ๋˜์–ด ๊ฐ Tick ์‹œ๋ฎฌ๋ ˆ์ด์…˜์—์„œ ์‚ฌ์šฉ
    • ์ž…๋ ฅ์€ FixedUpdateNetwork ๋‚ด์—์„œ GetInput ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํš๋“(ํ•ด๋‹น ๋„คํŠธ์›Œํฌ ๊ฐ์ฒด์˜ ์ž…๋ ฅ ๊ถŒํ•œ์— ์˜ํ•ด ์ œ๊ณต๋œ ์ž…๋ ฅ์„ ๋ฐ˜ํ™˜)