๋ณธ์
์ ์๋ฒ๊ฐ๋ฐ์๊ณ ๋ชจ๋ฐ์ผ์ด๋ win ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ๊ฒฝํ์ ์ข ์๋๋ฐ
์ ๋ํฐ๋ ์ฒ์์ด๋ผ ๊ตฌ์กฐ๋ฅผ ์ด๋ป๊ฒ ์ก์์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ์ด์ ์ง๋ฌธ์ข ํ ๊ฒ
[์ํฉ]
1. ์์ผ ๊ธฐ๋ฐ์ผ๋ก protobuf๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์๋ฒ๋ฅผ ๋ง๋ค์์.
2. c++๋ก ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ง๋ค์ด ๋์(Thread, Encrypt, Protocol Buffers ํฌํจ)
3. ์ ๋ํฐ์์ SocketClient - MessageQueue - UI ์ด๋ฐ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ ๊น ์๊ฐ์ค์ธ๋ฐ
SocketClient๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฉํํ๋ ์ฉ๋
์ฃผ๊ณ ๋ฐ๋ ๋ฉ์์ง๋ ์ ๋ถ queue๋ก ๊ด๋ฆฌ
UI์์ ์ฃผ๊ธฐ์ ์ผ๋ก queue์์ย ๋ฉ์์ง ๋ฝ์์ ์ฐ๋ ค๊ณ ํจ
[์ง๋ฌธ]
1. ์ผ๋จ ์ด๋ฐ ๊ตฌ์กฐ๊ฐ ์ ๋ํฐ์์ ์์ผ ํต์ ํ ๋ ๋ง๋ ๋ฐฉ์์?
2. SocketClient๋ฅผ ์ธ์คํด์คํ ์ํค๋ ค๊ณ ํ๋๋ฐ ์ฑ๊ธํค์ผ๋ก ๊ตฌํํ๊ณ ๋ชจ๋ ์ฌ์ ๋ฃ์ผ๋ฉด ๋ ๊น?
์๋๋ฉด main ํจ์์ ๊ฐ์ ์ง์ ์ ์ด ์์๊น?
์ฝ์ด์ค์ ๊ณ ๋ง์๋๋ค.
๋ต๋ณ์ ๋ฏธ๋ฆฌ ๊ฐ์ฌํจ์ ์ ํฉ๋๋ค.
๊ตณ์ด ์์ผํด๋ผ์ด์ธํธ๋ฅผ ๊ฒ์์ค๋ธ์ ํธ๋ก ๋ง๋ค ํ์๊ฐ ์์ง ์๋
๊ฒ์ํด๋ณด๋ฉด ์์๋ฏ? ์ ๋ํฐ ์์ผ ํ๋ก๊ทธ๋๋ฐ์ ์ํด๋ด์ ์ ๋ชจ๋ฅด๊ฒ ์
1. ๋๋ ๋น์ทํ๋ฏ, 2. ์ ๋ํฐ ์ฑ๊ธํด ๊ตฌํ๋ฐฉ์์ด ๋ฐ๋ก ์์ ์ฌ ๋ณ๊ฒฝ๋ผ๋ ํ๊ดด ์๋๋๋กํด์ฃผ๋๊ฑฐ ใ ใ ๊ทธ๊ฑฐ ์ฐ์ผ.
์ฌ์ ๋ค ๋ฃ์ ํ์์์ GetInstanceํ ๋ new GameObject(Type.Name, Type)๋ก ์ฐธ์กฐํ ๋ ์คํฌ๋ฆฝํธ ์ปดํฌ๋ํธ๋ก ๋งค๋ฌ๊ณ ๊ฒ์์ค๋ธ์ ํธ ์์ฑํ๊ณ .GetComponent()๋ก ์ธ์คํด์ค ์ ์ฅํ๊ณ ๋ฐํ, Awake ํจ์์์ DontDestroyOnLoad(gameObject)ํ๋ฉด ์ฌ ๋ฐ๊ปด๋ ๊ณ์๋จ์์์ ใ ใ ์์ธ์ฒ๋ฆฌ๋ ์์์ ํ๊ณ
๊ณ ๋ง์ ๋ง์ ๋์์ด ๋์์ด!
https://docs.unity3d.com/kr/2019.4/ScriptReference/RuntimeInitializeOnLoadMethodAttribute.html
๋ชจ๋ ธ ํ์์๋ ํด๋์ค๋ ๋ ์์๊บผ ์
์ด๋ฐ๊ฒ ์์๋ค ๊ณ ๋ง์!