Network Project Config - cheona-thousand-man/Unity-myBasics-Wiki GitHub Wiki
๊ฐ์
Photon Fusion ํ๋ก์ ํธ์ ์ํฅ์ ๋ฏธ์น๋ ๋ค์ํ ์ ๋ณด์ ๋งค๊ฐ๋ณ์๋ฅผ ํฌํจํ๋ asset
- Version
- Peer Mode
- Default Player Count
- Network Condition Testing
- Encryption
- Prefab Inspection
Fusion Version
- ํ์ฌ ์ฌ์ฉ ์ค์ธ Fucion Version ๋์ด
Scene Setting
- Peer Mode
- Single ์๋ฒ, ํธ์คํธ, ํด๋ผ์ด์ธํธ Peer๋ฅผ ๋จ์ผ ๋น๋ ๋๋ ์๋ํฐ์์ ์คํํ๋ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก
- Multiple ์๋ํฐ์์ ๋ค์ค Peer ํ์ฉ
- ํผ์ด ๋ชจ๋๋ฅผ Multiple๋ก ์ค์ ํ๋ฉด ๋น๋๋ฅผ ๋ง๋ค ํ์ ์์ด ๊ฒ์ ์ธ์ ๋ด์์ ์ฌ๋ฌ ํผ์ด๋ฅผ ํ ์คํธํ๋ ๋ฐ ์ ์ฉ
์ง์ฐ ๋ณด์(Lag Compensation)
- 1์ธ์นญ ์ํ ๊ฒ์๊ณผ ๊ฐ์ ๋น ๋ฅธ ์๋์ ๊ฒ์์ ์ ์ฉ
- ๊ฒ์์ HitBox ์ค๋
์ท ์ธํธ๋ฅผ ์ ์ฅํ์ฌ ์ํ
- ์๋ฒ ๋ชจ๋ or ํธ์คํธ ๋ชจ๋์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
- Hitbox Buffer Length In MS ํํธ๋ฐ์ค ๋ฐ์ดํฐ๊ฐ ๋ฐ๋ฆฌ์ด ๋จ์๋ก ์ ์ฅ๋ ๋ฒํผ์ ๊ธธ์ด๋ฅผ ์ง์ . ์๊ฐ์ด ๊ธธ์๋ก ํํธ๋ฐ์ค ์ค๋ ์ท์ด ์ ์ค๋ ์ท์ผ๋ก ๋ฎ์ด์ฐ์ฌ์ง๊ธฐ ์ ์ ๋ ์ค๋ ์ ์ฅ
- Hitbox Defaulr Capacity ์ค๋ ์ท๋น ์ ์ฅ๋๋ ํํธ๋ฐ์ค ๊ฐ์ ๊ธฐ๋ณธ ์(์ต์๊ฐ์ 16)
- Cached Static Colliders Size ๊ธฐ๋ณธ ์ง์ฐ ๋ณด์ ์ฟผ๋ฆฌ์ ์บ์๋ ์ ์ ์ฝ๋ผ์ด๋(PhysX ๋๋ Box2D) ๋ฐฐ์ด์ ํฌ๊ธฐ
Miscellaneous
- ๋ถ์์ ํ ๋๊ธฐ ์คํฐ ๋๊ธฐ์ด์ ์ถ๊ฐ(Enqueue Incomplete Synchronous Spawns)
ํ์ฑํํ๋ฉด, ๋๊ธฐ ๋ถ์์ ์คํฐ(Addressables ๋ฑ)์ด ์์ธ๋ฅผ ๋ฐ์์ํค๋ ๋์ ๋๊ธฐ์ด์ ์ถ๊ฐ๋ฉ๋๋ค. ๋์ Fusion.NetworkSpawnStatus.Queued๋ฅผ ๋ฐํํ๊ณ ๊ฐ์ฒด ์คํฐ ์๋๊ฐ ๋ค์ ํ๋ ์์ ๋ฐ์ํฉ๋๋ค - ๋ฐฐ์น ๋ชจ๋์์ ๋ ๋ ํธ์ถ(Invoke Render In Batch Mode)
ํ์ฑํํ๋ฉด Fusion.SimulationBehaviour.Render ์ฝ๋ฐฑ์ด ๋ฐฐ์น ๋ชจ๋์์ ๊ฒ์์ ํ๋ ์ดํ ๋ ํธ์ถ๋ฉ๋๋ค. ๋ฐฐ์น ๋ชจ๋๋ Unity ๋น๋ ์คํ ํ์ผ์ ์ ๋ฌ๋ ์ ์๋ -batchmode ๋งค๊ฐ๋ณ์๋ฅผ ๋ํ๋ ๋๋ค. ์ด๋ฅผ ๋นํ์ฑํํ๋ฉด ๋ฐฐ์น ๋ชจ๋์์ ์คํ๋๋ ํค๋๋ฆฌ์ค ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์์ ์ ์ฉํ ์ ์์ต๋๋ค - ๋คํธ์ํฌ ID๊ฐ ๊ฐ์ฒด ์ด๋ฆ(Network Id Is Object Name)
์ฒดํฌํ๋ฉด ์๋ก ์คํฐ๋ ๊ฐ์ฒด์ ์ด๋ฆ์ ๋คํธ์ํฌ ID๊ฐ ํฌํจ๋๋๋ก ๋ค์๊ณผ ๊ฐ์ด ์์ : {[Network Id] ์๋ ๊ฐ์ฒด ์ด๋ฆ} - ๋คํธ์ํฌ ๊ฐ์ฒด ๋นํ์ฑ ๊ฐ๋ ์จ๊ธฐ๊ธฐ(Hide Network Object Inactivity Guard)
NetworkObjects ๋ด์ ์ค์ฒฉ๋ NetworkObjectInactivityGuard๋ผ๋ ์ด๋ฆ์ GameObject๊ฐ ํ์ฑํ๋๊ธฐ ์ ์ ํ๊ดด๋ NetworkObjects์ OnDestroy ๋ฉ์์ง๋ฅผ ์ถ์ ํฉ๋๋ค. ์ด ์ต์ ์ ์ฒดํฌํ๋ฉด ์ด๋ฌํ ๊ฐ๋๊ฐ ๊ณ์ธต ๊ตฌ์กฐ์ ํ์๋์ง ์์ต๋๋ค
Simulation
- Replication Features
- None ๊ธฐ๋ณธ ์ค์ ์ด๋ฉฐ ๊ฒ์ ํ๋ ์ด ์ค์ ํฑ๋น ๋ฐ์ดํฐ ํ๋๋ฅผ ์ด๊ณผํ์ง ์๋ ๊ฒฝ์ฐ ์ด์์
- Scheduling ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ๋คํธ์ํฌ ๊ฐ์ฒด๋ฅผ ๋ณต์ ํ์ง ์์์ ๋(๋ฐ์ดํฐ ํฑ ํ๋์ ๋๋ฌํ๊ธฐ ๋๋ฌธ) ์๋ฒ๋ ํด๋น ๋คํธ์ํฌ ๊ฐ์ฒด์ ์ฐ์ ์์๋ฅผ ๋ค์ Tick ์ ๋ฐ์ดํธ๋ก ์ฆ๊ฐ์ํด
- Scheduling and Interest Management ์ค์ผ์ค๋ง ์ธ์๋ ๊ด์ฌ ๊ด๋ฆฌ(Area of Interest ๋ฐ Explicit Interest) ๊ธฐ๋ฅ ํ์ฑํ
- Input Transfer Mode ์
๋ ฅ์ด ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋๋ ๋ฐฉ์ ๊ฒฐ์
- Redundancy ๋ธํ ์์ถ ๋ฐ ์ค๋ณต ์ ๋ ฅ์ ์ ์กํ๋ฉฐ, ๋๋ถ๋ถ์ ๊ฒ์์ ์ฌ์ฉ
- Latest State ์ต์ ์ ๋ ฅ ์ํ๋ง ์ ์กํ๋ฉฐ, ์ด๋ ๋จธ๋ฆฌ์ ์์ ์์น ๋ฐ์ดํฐ๋ฅผ ์์ฃผ ํฌํจํ๋ VR๊ณผ ๊ฐ์ ๋ํ ์ ๋ ฅ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์์ ์ ์ฉ
- Player Count 1์์ 255๊น์ง ๋ฒ์ ๋ด์์ ์ Fusion ์ธ์ ์ ์์ํ ๋ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉ๋๋ ํ๋ ์ด์ด ์
"๋ค์ ์ค์ ์ ๊ณต์ ๋ชจ๋(Shared Mode)์๋ ์ ์ฉ๋์ง ์์ผ๋ฉฐ, ๊ณต์ ๋ชจ๋์์๋ ํด๋ผ์ด์ธํธ Tick ๋ ์ดํธ๊ฐ ํญ์ 32์ด๊ณ ํด๋ผ์ด์ธํธ ์ ์ก ๋ ์ดํธ๊ฐ ํญ์ 16์ ๋๋ค"
- Client Tick Rate ๋๋กญ๋ค์ด์ ํตํด 8์์ 256๊น์ง์ ๊ฐ์ ์ ํ ๊ฐ๋ฅ
- Client Send Rate ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ์๋
- 1/8 ํด๋ผ์ด์ธํธ Tick ๋ ์ดํธ๊ฐ 240 ์ด์์ธ ๊ฒฝ์ฐ์๋ง ์ ์ฉ
- 1/4 ํด๋ผ์ด์ธํธ Tick ๋ ์ดํธ๊ฐ 4๋ก ๋๋์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ์๋ง ์ ์ฉ
- 1/2
- 1:1 ํด๋ผ์ด์ธํธ Tick ๋ ์ดํธ์ ๋์ผํ ๊ฐ
- Server Tick Rate ์๋ฒ๊ฐ ์ ๋ฐ์ดํธ๋๋ ์๋๋ก, ํด๋ผ์ด์ธํธ ์ ์ก ๋ ์ดํธ์ ๋์ผํ ์ ํ์ง
- Server Send Rate ์๋ฒ๊ฐ ๋ค๋ฅธ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ์๋๋ก, ํด๋ผ์ด์ธํธ ์ ์ก ๋ ์ดํธ์ ๋์ผํ ์ ํ์ง๋ฅผ ๊ฐ์ง์ง๋ง ์๋ฒ ํฑ ๋ ์ดํธ๋ณด๋ค ๋์ ์ ์์
๋คํธ์ํฌ (Network)
- ์ฐ๊ฒฐ ์๊ฐ ์ด๊ณผ (Connection Timeout)
์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์ง ๋ชปํ๋ฉด ์ฐ๊ฒฐ์ด ๋์ด์ง๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ(์ด)์ ๋๋ค. ์๋ฒ๋ ํด๋น ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์ง ๋ชปํ๋ฉด ํด๋ผ์ด์ธํธ์์ ์ฐ๊ฒฐ์ ๋๊ณ , ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก๋ถํฐ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์ง ๋ชปํ๋ฉด ์๋ฒ์์ ์ฐ๊ฒฐ์ ๋์ต๋๋ค. - ์ฐ๊ฒฐ ์ข
๋ฃ ์๊ฐ (Connecting Shutdown Time)
์ฐ๊ฒฐ ์ํ๊ฐ ์ข ๋ฃ๋ก ๋ณ๊ฒฝ๋ ํ ์ฐ๊ฒฐ ๋ฐ ๊ด๋ จ ์ฐธ์กฐ๊ฐ ํด์ ๋๊ธฐ๊น์ง์ ์๊ฐ(์ด)์ ๋๋ค. - ์ ๋ขฐํ ์ ์๋ ๋ฐ์ดํฐ ์ ์ก ๋ชจ๋ (Reliable Data Transfer Modes)
์ ๋ขฐํ ์ ์๋ ๋ฐ์ดํฐ ์ ์ก ๋ชจ๋๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.- Client to Server
ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ขฐํ ์ ์๊ฒ ์ ์กํ ์ ์์ต๋๋ค. - Client to Client With Server Proxy
์๋ฒ๋ฅผ ํ๋ก์๋ก ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ขฐํ ์ ์๊ฒ ์ ์กํ ์ ์์ต๋๋ค.
- Client to Server
ํธ์คํธ ๋ง์ด๊ทธ๋ ์ด์ (Host Migration)
- ์๋ ์
๋ฐ์ดํธ ํ์ฑํ (Enable Auto Update)
์ฒดํฌํ๋ฉด ํธ์คํธ ๋ง์ด๊ทธ๋ ์ด์ ์ด ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค. - ์
๋ฐ์ดํธ ์ง์ฐ (Update Delay)
ํธ์คํธ ๋ง์ด๊ทธ๋ ์ด์ ์ค๋ ์ท์ด Photon Cloud์ ์ ๋ก๋๋๋ ๊ฐ๊ฒฉ ์๊ฐ(์ด)์ ๋๋ค.
์ํธํ (Encryption)
์ด ํ ๊ธ์ ์ด Fusion ํ๋ก์ ํธ์ ๋ํด ์ํธํ๋ฅผ ํ์ฑํํ๊ฑฐ๋ ๋นํ์ฑํํ ์ง๋ฅผ ์ค์ ํฉ๋๋ค.
๋คํธ์ํฌ ์กฐ๊ฑด (Network Conditions)
๋คํธ์ํฌ ์กฐ๊ฑด์ ํตํด ์ฌ์ฉ์๋ค์ ์ง์ฐ ๋ฐ ์์ค๊ณผ ๊ฐ์ ๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด์ ์๋ฎฌ๋ ์ด์ ํ๊ณ ํ ์คํธํ ์ ์์ต๋๋ค.
- ํ์ฑํ๋จ(Enabled) ์ฒดํฌํ๋ฉด ๋ ๋ง์ ์ต์ ์ด ๋ํ๋ฉ๋๋ค.
- ์ง์ฐ ํํ(Delay Shape) ์ง์ฐ ๋ณ๋์ ํจํด์ ์ค์
- Noise
- Sine
- Square
- Triangle
- Saw
- Reverse Saw
- ์ง์ฐ ์ต์๊ฐ(Delay Min) ์ต์ ์ง์ฐ ์๊ฐ(์ด), 0์์ 0.5๊น์ง์ ๋ฒ์.
- ์ง์ฐ ์ต๋๊ฐ(Delay Max) ์ต๋ ์ง์ฐ ์๊ฐ(์ด), 0์์ 0.5๊น์ง์ ๋ฒ์.
- ์ง์ฐ ์ฃผ๊ธฐ(Delay Period) ์ง์ฐ์ด Delay Min๊ณผ Delay Max ์ฌ์ด์์ ๋ณ๋ํ๋ ์ฃผ๊ธฐ(์ด).
- ์ง์ฐ ์๊ณ๊ฐ(Delay Threshold) ๋ณ๋์ด ์ด ๊ฐ ์๋๋ก ๋จ์ด์ง๋ฉด(0์์ 1 ์ฌ์ด) ์ง์ฐ์ด Delay Min์ผ๋ก ์ค์ ๋ฉ๋๋ค.
- ์ถ๊ฐ ์งํฐ(Additional Jitter) ๋ณ๋๊ธฐ๊ฐ ๋ค์ ์ง์ฐ ๊ฐ์ ๊ฒฐ์ ํ ํ, 0์์ ์ด ๊ฐ ์ฌ์ด์ ์์์ ๊ฐ(์ด ๋จ์)์ด ์ง์ฐ์ ์ถ๊ฐ๋ฉ๋๋ค.
- ์์ค ํ๋ฅ ํํ(Loss Chance Shape) ์์ค ๋ณ๋์ ํจํด์ ์ค์ ํฉ๋๋ค. ์ ํ์ง๋ ์ง์ฐ ํํ์ ๋์ผํฉ๋๋ค.
- ์์ค ํ๋ฅ ์ต์๊ฐ(Loss Chance Min) ์์ค์ด ๋ฐ์ํ ์ต์ ํ๋ฅ ๊ฐ, 0(0%)์์ 1(100%)๊น์ง์ ๋ฒ์.
- ์์ค ํ๋ฅ ์ต๋๊ฐ(Loss Chance Max) ์์ค์ด ๋ฐ์ํ ์ต๋ ํ๋ฅ ๊ฐ, 0(0%)์์ 1(100%)๊น์ง์ ๋ฒ์.
- ์์ค ํ๋ฅ ์๊ณ๊ฐ(Loss Chance Threshold) ๋ณ๋์ด ์ด ๊ฐ ์๋๋ก ๋จ์ด์ง๋ฉด(0์์ 1 ์ฌ์ด) ์ง์ฐ์ด Loss Chance Min์ผ๋ก ์ค์ ๋ฉ๋๋ค.
- ์์ค ํ๋ฅ ์ฃผ๊ธฐ(Loss Chance Period) ์์ค ํ๋ฅ ์ด Loss Chance Min๊ณผ Loss Chance Max ์ฌ์ด์์ ๋ณ๋ํ๋ ์ฃผ๊ธฐ(์ด).
- ์ถ๊ฐ ์์ค(Additional Loss) ๋ณ๋๊ธฐ๊ฐ ๋ค์ ์์ค ํ๋ฅ ๊ฐ์ ๊ฒฐ์ ํ ํ, ์ถ๊ฐ๋ก 0์์ ์ด ๊ฐ ์ฌ์ด์ ์์์ ๊ฐ(์ ๊ทํ๋ ์์ค ํ๋ฅ ๋น์จ)์ด ์์ค ํ๋ฅ ์ ์ถ๊ฐ๋ฉ๋๋ค.
์์ค(Loss)์ ์ง์ฐ ์๊ฐ(์ด) ๋์ , 0%์์ 100% ์ฌ์ด์ ์์ค ํ๋ฅ ์ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํด ๊ฐ์ ๊ฒฐ์ ํ๋ ๊ฑฐ์ ๋์ผํ ์ค์ ์ ๊ฐ์ง๋๋ค.
ํ (Heap)
์ฌ์ฉ์๋ค์ด Fusion์์ ์ฌ์ฉํ ์ฌ์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ํ ์ ์๋๋ก ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ต์ ํ ๋ฐ ํจ์จ์ฑ ํฅ์์ ๋์ต๋๋ค.
- ํ์ด์ง ์ฌํํธ(Page Shift) ๊ฐ ํ ํ์ด์ง์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ธ๋ฐ๋์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. 1 KB์์ 256 KB๊น์ง 2์ ์ ๊ณฑ์๋ก ์ค์ ๋ฉ๋๋ค. ๋ ๋ฎ์ ์ฌํํธ๋ ๋ ์์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์, ๋ ๋์ ์ฌํํธ๋ ๋ ํฐ ํ ๋น์ ํ์ฉํฉ๋๋ค.
- ํ์ด์ง ์(Page Count) ํ์ ์ํด ํ ๋น๋ ์ด๊ธฐ ํ์ด์ง ์๋ฅผ ์ง์ ํฉ๋๋ค. 16์์ 4096๊น์ง์ ๋ฒ์๋ก, ํ์ ํ ๋น๋ ํ์ด์ง ์์ ์ด๊ธฐ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๋์ ์ํฅ์ ์ค๋๋ค.
์๋ฒ ์ค์ (Weaver Settings)
๋ค์์ Assembly-CSharp.dll์ ์ ์์ค ๋คํธ์ํฌ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ฝ์ ํ๋ Fusion IL Weaver์ ์ํฅ์ ๋ฏธ์น๋ ์ค์ ์ ๋๋ค.
- ์๋นํ ์ด์
๋ธ๋ฆฌ(Assemblies to Weave) ์๋น๋ ์ด์
๋ธ๋ฆฌ์ ๋ชฉ๋ก์
๋๋ค. ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์์ด ํฌํจ๋ฉ๋๋ค
- Fusion.Unity
- Assembly-CSharp
- Assembly-CSharp-firstpass
- Fusion.Addons.Physics (ํ๋ก์ ํธ๊ฐ Fusion์ ๋ฌผ๋ฆฌ ์์คํ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ)
- ์ง๋ ฌํ๋ ์ฌ์ ์ฌ์ฉ(Use Serialized Dictionary) ์ฒดํฌํ๋ฉด Fusion.SerializeableDictionary๊ฐ ๋คํธ์ํฌ ์์ฑ์ ์ด๊ธฐ ๊ฐ์ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ฒดํฌํ์ง ์์ผ๋ฉด weaver๋ System.Generic.Dictionary๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์ ํ์ Unity์์ ์ง๋ ฌํํ ์ ์์ง๋ง, Odin๊ณผ ๊ฐ์ ์ปค์คํ ์ง๋ ฌํ๊ธฐ๋ ์ด๋ฅผ ์ง์ํ ์ ์์ต๋๋ค. ๋คํธ์ํฌ ์์ฑ์ ๋ํ null ๊ฒ์ฌ(Null Checks for Networked Properties): ์ค์ ํ๋ฉด weaver๋ Networked ์์ฑ์ด ์๋ ๋ชจ๋ Fusion.NetworkBehaviour์ ์ฐ๊ฒฐ๋ Fusion.NetworkObject๊ฐ ์๋์ง ํ์ธํ๋ ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- RPC ์์ฑ ์ฌ์ฉ ๊ฒ์ฌ(Check Rpc Attribute Usage) ์ค์ ํ๋ฉด weaver๋ Fusion.RpcAttribute๊ฐ ์ง์ํ์ง ์๋ ์ ํ์์ ์ฌ์ฉ๋๋์ง ํ์ธํฉ๋๋ค. ์๋ฅผ ๋ค์ด, Fusion.RpcAttribute๊ฐ Unity.MonoBehaviour ๋ฉ์๋์ ์ถ๊ฐ๋๊ณ ์ด ์ต์ ์ด ์ฒดํฌ๋ ๊ฒฝ์ฐ, RPC๋ Fusion.NetworkBehaviour ๋ฐ Fusion.SimulatedBehaviours์๋ง ์ถ๊ฐ๋ ์ ์๋ค๋ ๊ฒฝ๊ณ ๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ์ ํ์ ์ค์บํด์ผ ํ๋ฏ๋ก ์๋น ๋ฐ ์คํฌ๋ฆฝํธ ์ปดํ์ผ ์๊ฐ์ด ์ฆ๊ฐํ ์ ์์ต๋๋ค.
- ๋น์ด ์๋ ๋คํธ์ํฌ ์์ฑ ๊ฒ์ฌ(Check Networked Properties Being Empty) ์ฒดํฌํ๋ฉด ์ฌ์ฉ์๊ฐ Fusion.NetworkedAttribute๋ฅผ ์๋ชป ์ ์ํ๋ ค๊ณ ํ ๋ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์ต๋๋ค. ์ด๋ฌํ ์์ฑ์ getter์ setter๋ ๋ค์๊ณผ ๊ฐ์ด ๋น์ด ์์ด์ผ ํฉ๋๋ค
[Networked]
public int NetworkedProperty {get; set;}
ํ๋ฆฌํน (Prefabs)
์ด ๋ ๊ฐ์ง ์ค์ ์ ํ๋ฆฌํน์ด ์ด๋ป๊ฒ ์ธ๋ก๋๋๋์ง ์ฒ๋ฆฌํฉ๋๋ค
- ๋ง์ง๋ง ์ธ์คํด์ค ํด์ ์ ํ๋ฆฌํน ์ธ๋ก๋(Unload Prefab On Releasing Last Instance) true๋ก ์ค์ ํ๋ฉด, ๋ง์ง๋ง ์ธ์คํด์ค๊ฐ ํด์ ๋ ๋ ํ๋ฆฌํน์ด ์ธ๋ก๋๋ฉ๋๋ค.
- ์ข ๋ฃ ์ ํ๋ฆฌํน ์ธ๋ก๋(Unload Prefabs On Shutdown) true๋ก ์ค์ ํ๋ฉด, ์ข ๋ฃ ์ ๋ชจ๋ ํ๋ฆฌํน์ด ์ธ๋ก๋๋ฉ๋๋ค.
ํ๋ฆฌํน์ ๋ ์ด์ ํ์ํ์ง ์๊ฒ ๋๋ฉด ์ธ๋ก๋ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๊ฐ์ ๋ ์ ์์ง๋ง, ๋ค์ ํ์ํ ๊ฒฝ์ฐ ์ฌ๋ก๋ํด์ผ ํฉ๋๋ค.
์๋ ์์ฑ (Auto-Generated)
์ด ์น์ ์ ์๋์ผ๋ก ์์ฑ๋ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค๋๋ค.
- ๋คํธ์ํฌ ํ๋ฆฌํน ๊ฒ์ฌ๊ธฐ ํ์(Show Network Prefab Inspector) ์ด ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ฐฝ์ด ์ด๋ฆฌ๋ฉฐ, Fusion.NetworkObject ์ปดํฌ๋ํธ๋ฅผ ํฌํจํ๊ณ Fusion.NetworkObject.IsSpawnable์ด ํ์ฑํ๋ ํ๋ก์ ํธ์ ๋ค์ํ ํ๋ฆฌํน์ ๋ณผ ์ ์์ต๋๋ค.
- ํ๋ฆฌํน(Prefabs) ์์ ์ธ๊ธํ ๋ฒํผ ์๋์๋ ํ๋ก์ ํธ์ NetworkObject ํ๋ฆฌํน ๋ชฉ๋ก์ด ๋๋กญ๋ค์ด ๋ฆฌ์คํธ๋ก ํ์๋ฉ๋๋ค. ์ด ๋ชฉ๋ก์ ์ฌ์ฉ์๊ฐ ์ง์ ์ ๋ฐ์ดํธํ ์ ์์ง๋ง, ์ถ๊ฐ ํ๋ฆฌํน์ ๋ฐํ์์์ Fusion.NetworkPrefabTable.TryAddSource๋ฅผ ํตํด ๋ฑ๋กํ ์ ์์ต๋๋ค.
- ํ๋ ๋ฉํ(Behaviour Meta) ํ๋ก์ ํธ์ ๋ชจ๋ Fusion.SimulationBehaviours์ ๋ํ ๋ฉํ ์ ๋ณด๋ฅผ ์๋์ผ๋ก ์์ฑํ์ฌ ๋ชฉ๋กํํ ๊ฒ์ ๋๋ค. ์คํ ์์์ ๊ฐ์ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
๋คํธ์ํฌ ํ๋ฆฌํน ๊ฒ์ฌ๊ธฐ(Network Prefabs Inspector)
์์ ์ธ๊ธํ ๋ฐ์ ๊ฐ์ด, ๋คํธ์ํฌ ํ๋ฆฌํน ๊ฒ์ฌ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด Fusion.NetworkObject ์ปดํฌ๋ํธ๋ฅผ ํฌํจํ๊ณ Fusion.NetworkObject.IsSpawnable์ด ํ์ฑํ๋ ํ๋ฆฌํน์ ์์ธํ ๊ฒ์ฌํ ์ ์์ต๋๋ค.
- ๋คํธ์ํฌ ํ๋ฆฌํน ๊ฒ์ฌ๊ธฐ ์์ ๋คํธ์ํฌ ํ๋ฆฌํน ๊ฒ์ฌ๊ธฐ์ ์์ ๋ทฐ์ ๋๋ค
์ด ์ฐฝ์ ์ฃผ์ ํด๋ฐ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ด ์์ต๋๋ค
- ์๋ก ๊ณ ์นจ(Refresh) ๋ฆฌ์คํธ๋ฅผ ์๋ก ๊ณ ์น๊ณ ์๋ก์ด ํ๋ฆฌํน์ด ์ถ๊ฐ๋ ๊ฒฝ์ฐ ์ ๋ฐ์ดํธํฉ๋๋ค
- ์ ํ ๋๊ธฐํ(Sync Selection) ์ผ์ง๋ฉด, Unity๋ ์ฐฝ์์ ๊ฐ์กฐ๋ ํ๋ฆฌํน ์์ฐ์ ์ ํํฉ๋๋ค
- ๋ก๋๋ ํญ๋ชฉ๋ง(Loaded Only) ์ผ์ง๋ฉด, ํ์ฌ ๋ก๋๋ ํ๋ฆฌํน๋ง ํ์๋ฉ๋๋ค
๊ฐ ํ์ ๋ค๋ฅธ ํ๋ฆฌํน์ ๋ํ๋ด๋ฉฐ, ์ด ์ฐฝ์ ๊ฐ ์ด์ ๋ค์์ ํ์ํฉ๋๋ค
- ์ํ(State) ํ๋ฆฌํน์ด ํ์ฌ ๋ก๋๋์๋์ง ์ฌ๋ถ๋ฅผ ํ์ํฉ๋๋ค
- ์ ํ(Type) ์ด ๊ฐ์ฒด๊ฐ ์ด๋ค ์ข ๋ฅ์ ํ๋ฆฌํน์ธ์ง, ์ฆ ์ด๋ป๊ฒ ๋ก๋๋ ๊ฒ์ธ์ง์ ๋ํด ์ค๋ช ํฉ๋๋ค
- R Resources ํด๋์ ๋ฐฐ์น๋ ํ๋ฆฌํน
- SL Resources ํด๋ ์ธ๋ถ์ ๋ฐฐ์น๋ ์ ์ ํ๋ฆฌํน
- A ์ฃผ์ ์ง์ ๊ฐ๋ฅํ ํ๋ฆฌํน (ํ๋ฉด์๋ ํ์๋์ง ์์)
- PrefabId Fusion์์ ํ๋ฆฌํน์ ํ ๋นํ ID
- ๊ฒฝ๋ก(Path) ํ๋ฆฌํน์ ํ์ผ ๊ฒฝ๋ก