Memo - sunbang123/study_report GitHub Wiki
Photon
- ์๋ฒ ์ข ๋ฅ
์ ์ฉ ์๋ฒ(Dedicated Server) ๋ฆฌ์จ ์๋ฒ(Listen Server) P2P(Peer-to-Peer)
๋คํธ์ํฌ ๊ตฌํ
- remote ์ ๋ฌ
- Photon View ์ปดํฌ๋ํธ : Player ๊ฒ์ ์ค๋ธ์ ํธ๊ฐ ๋คํธ์ํฌ ์์์ ์๋ณ๋๊ฒ ํจ. ๋ก์ปฌ-๋ฆฌ๋ชจํธ ๋๊ธฐํ
- Photon Transform View: ๋ก์ปฌ Player ์์น์ ํ์ ์ ๋ฆฌ๋ชจํธ Player์ transform ์ปดํฌ๋ํธ์ ๋๊ธฐํ. Photon View ์์ด๋ ๋์ ๋ถ๊ฐ๋ฅ
- Photon Animator View: ์์ ๊ฐ์ด ์ ๋๋ฉ์ดํฐ ์ปดํฌ๋ํธ๋ฅผ ๋๊ธฐํ. Photon View ์์ด๋ ๋์ ๋ถ๊ฐ๋ฅ
- Camera Setup : ์์ ์ ๊ฒ์ ์ค๋ธ์ ํธ๊ฐ ๋ก์ปฌ ์ค๋ธ์ ํธ๋ฉด ์๋ค๋จธ์ ์นด๋ฉ๋ผ๊ฐ ์์ ์ ์ถ์ ํ๊ฒ ํจ.
- ๋ก์ปฌ ๊ถํ ๊ฒ์ฌ
- photonView.IsMine : ํ์ฌ ๊ฒ์ ์ค๋ธ์ ํธ๊ฐ ๋ก์ปฌ ๊ฒ์ ์ค๋ธ์ ํธ์ธ ๊ฒฝ์ฐ true
RPC
- ํธ์คํธ์ ์ฒ๋ฆฌ๋ฅผ ์์ํ๊ณ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋คํธ์ํฌ๋ฅผ ๋์ด ํด๋ผ์ด์ธํธ์ ์ ํํ๊ณ ์คํํ๊ฒ ํจ.
- ์ฌ์ฉ์ B๊ฐ ๋ฐ์ฌ ๋ฒํผ์ ๋๋ฆ
- ํด๋ผ์ด์ธํธ B -> ํธ์คํธ A๋ก RPC(b.shot()) ์ ๋ฌ
- ํธ์คํธ A์์ b.Shot() ์คํ
- ์ง๋ ฌํ ์ญ์ง๋ ฌํ
Resources ํด๋
- ์์ ์ ์ฌ์ฉ ์ฌ๋ถ์ ์๊ด์์ด ํญ์ ๋ฉ๋ชจ๋ฆฌ์ ํด๋น ์์ ์ ๋ก๋ํจ. ์ค์๊ฐ์ผ๋ก ์์ ์ ๊ฐ์ ธ์ ์. ๋ฉ๋ชจ๋ฆฌ ๋๋ฌธ์ ์ฌ์ฉํ์ง ์๋๊ฒ์ ๊ถ์ฅ.
Zombie
- ๋ ์ด์บ์คํธ: ๋ณด์ด์ง ์๋ ๊ด์ ์ ์๊ณ ๋ค๋ฅธ ์ฝ๋ผ์ด๋์ ์ถฉ๋ํ๋์ง ๊ฒ์ฌ. ์ถฉ๋ ์ ๋ณด(์ค๋ธ์ ํธ, ์์น, ํ๋ฉด ๋ฐฉํฅ)๋ฅผ ์์ฑ
- ํํฐํด: ํน์ ์๊ฐ ํจ๊ณผ๋ฅผ ๋ง๋๋ ์์คํ ์ปดํฌ๋ํธ
- FK: ์ ์ง ์ด๋ํ. ๋ถ๋ชจ ์กฐ์ธํธ(์์ ๊ด์ )๊ฐ ์์ง์ด๋ฉด์ ์์ ์กฐ์ธํธ(ํ์ ๊ด์ )๋ ์์ง์.
- IK: ์ญ ์ด๋ํ. ์์ ์กฐ์ธํธ์ ์์น๋ฅผ ๋จผ์ ๊ฒฐ์ ํ๊ณ ๋ถ๋ชจ ์กฐ์ธํธ๊ฐ ๊ฑฐ๊ธฐ์ ๋ง์ถฐ ๋ณํ๋จ.
- while ๋ฌดํ ๋ฃจํ๋ฌธ์ ์ฝ๋ฃจํด ๋๊ธฐ ์๊ฐ์ ์ง์ ํ๋ ์ฝ๋๋ฅผ ์ ๋ ๊ฒ์ด ๊ณผ๋ถํ๋ฅผ ์ค์ฌ์ค.
- yield return new WaitForSeconds(0.25f);
- base : ์ค๋ฒ๋ผ์ด๋ฉํ ๋ฉ์๋ ์คํ
- navMesh: ๊ฒ์ ์๋์์ navMeshAgent๊ฐ ๊ฑธ์ด๋ค๋ ํ๋ฉด. ์ ์ ๊ฒ์ ์ค๋ธ์ ํธ๋ฅผ ๋์์ผ๋ก ๊ตฌ์์ ์์ฑํจ.
- ์ ๋๋ฉ์ดํฐ
- GetComponents : ์ปดํฌ๋ํธ๋ฅผ 2๊ฐ ์ด์ ๋ถ๋ฌ์ด. ๋ฐฐ์ด๋ก ๋ฐํํจ
- ์๊ฐ์ ํ๋ฆ ๊ธฐ์ค
- null ๊ฒ์ฌ
- ๋ ์ด์ด๋ง์คํฌ ์ฝ๋
- ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ
Unity Manager Scripts
GameManager
- ๊ฒ์์ ํต์ฌ ๋ก์ง, ๊ฒ์ ์ค๋ธ์ ํธ์ ์์ฑ ๋ฐ ์๋ฉธ, ๊ฒ์ ์ํ์ ๊ด๋ฆฌ, UI ์ ๋ฐ์ดํธ, ์ ์ ๋ฐ ๋ ๋ฒจ ๊ด๋ฆฌ, ํ๋ ์ด์ด ์ ๋ ฅ ์ฒ๋ฆฌ ๋ฑ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ.
- ์ฑ๊ธํค(Singleton) ํจํด์ผ๋ก ๊ตฌํ๋ ๋จ์ผ ์ธ์คํด์ค
UIManager
- HUD Canvas: ๊ฒ์์ ํ๋ฉด ์๋จ์ ํ์๋๋ ํค๋์ ๋์คํ๋ ์ด(HUD) ์์๋ฅผ ๊ด๋ฆฌํ๋ ๋น ์ค๋ธ์ ํธ. ํ๋ ์ด์ด์ ์ํ, ์ ์, ์์ดํ , ์๋ช ๋ฑ๊ณผ ๊ฐ์ ๊ฒ์ ์ ๋ณด๋ฅผ ํ์
Unity C#
์๋๊ตฌํ ํ๋กํผํฐ C#
public float move { get; private set; }
- ์ ์ฝ๋๋ ์๋ ์ฝ๋๋ฅผ ๊ฐ๋ตํ ํ๊ฒ
public float move {
get { return m_move; }
private set { m_move = value; }
}
private float m_move;
์์ฑ
- ํจ์ ์์ ์ ๋ ๋๊ดํธ๋ ์ฃผ๋ก ํน์ ํ ์์ฑ(Attribute)์ ๋ํ๋.
- ์์ฑ์ ๋งค๊ฐ๋ณ์๊ฐ ์ด๋ฆ์ผ๋ก ๋ค์ด๊ฐ.
- [SerializeField] : ํด๋น ๋ณ์๊ฐ Inspector ์ฐฝ์์ ํธ์ง ๊ฐ๋ฅํ๋๋ก ํด์ฃผ๋ ์์ฑ
- [Header("Custom Section")] : Inspector ์ฐฝ์์ ๋ณ์๋ค์ ๊ทธ๋ฃนํํ๊ณ ์ ๋ชฉ์ ์ง์
- [Range(1, 10)] : ํด๋น ๋ณ์(myFloat)๊ฐ ํน์ ๋ฒ์ ์์ ๊ฐ์ผ๋ก ์ค์ ๋ ์ ์๋๋ก ํจ
blender
https://github.com/sunbang123/sunha_report/assets/93497158/b0a886ff-0d66-4c4f-ae49-99e80f22c3b7
- ๋ฐ์ ์ฃผํฉ์(๋ชธํต)์ด ๋ฉ์ธ. shift + LClick์ผ๋ก ์ ํ
- ctrl + L : link/transferdata = ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐํ๊ฑฐ๋, ๋ณต์ฌํจ.
- copy modifier์ ๋๋ฅด๋ฉด modifier๊ฐ ๋ณต์ฌ๋จ.
- mirror object๋ ๊ฑฐ์ธ ๋ฐ์ฌ ๊ธฐ์ค์ด ๋ ์ค๋ธ์ ํธ๋ฅผ ํ์
https://github.com/sunbang123/sunha_report/assets/93497158/ac404c3a-0ee3-43ca-8217-12e7bf7baf27
- ctrl + A -> scale : ๋ชจ๋ scale์ 1:1๋ก ๋ฐ๊ฟ์ค๋ค! ์๋ฌ๊ฐ ์๋๊ฒ ํจ.
- set origin -> origin to 3D cursor: origin(์ฃผํฉ์ ) ์์น๋ฅผ 3D์ปค์ ์ ์์ ๋
- Shift๋ก ๋ฌผ์ฒด๋ฅผ ์ ํํ ๋ค ctrl + p set parent to object๋ฅผ ํ๋ฉด ๋ง์ง๋ง์ ์ ํํ ๋ฌผ์ฒด๋ฅผ ๋ถ๋ชจ๋ก ๋ค๋ฅธ ๋ฌผ์ฒด๋ค์ด ์ฐ๊ฒฐ๋จ