indiegamemaker
@indiegamemaker
Students
501
Reviews
34
Course Rating
4.9
์๋ ํ์ธ์, ์ด์ฌํ์ ๋๋ค.
1์ธ ๊ฒ์ ๊ฐ๋ฐ์๋ฅผ ๊ฟ๊พธ๋ฉฐ ์ ๋ํฐ๋ฅผ ๋ ํ์ผ๋ก ์์ํ๊ณ , 2009๋ ๋ถํฐ 2012๋ ๊น์ง 1์ธ ๊ฐ๋ฐ๋ก ๋ชจ๋ฐ์ผ ๊ฒ์ 10์ฌ์ข ์ ์ถ์ํ์ต๋๋ค. ์ ๋๊ฐ์ข! ์ ๋ํฐ ์ถ๊ฐ ๋ฐ ์คํ๋ผ์ธ ๊ฐ์๋ฅผ ์งํํ์ต๋๋ค. ๊ฐ์๋ฅผ ์งํํ๋ฉด์, ์ ์๋ ๊ฒ๊ณผ ์ ๊ฐ๋ฅด์น๋ ๊ฒ์ ๋ค๋ฅด๋ค๋ ์ฌ์ค์ ๋งค๋ฒ ๊นจ๋ซ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝํ์ ๋ฐํ์ผ๋ก, ์ ๊ฐ ๊ฐ์ง ์ง์์ ์ฌ๋ฌ๋ถ๋ค๊ป ๋ ํจ๊ณผ์ ์ผ๋ก ์ ๋ฌํ๊ธฐ ์ํด ๋ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
์ด๋ฒ ๊ฐ์๊ฐ ์ฌ๋ฌ๋ถ๊ป ์ข์ ์ถ๋ฐ์ ์ด ๋์ด, ์ฆ๊ฑฐ์ด ๊ฒ์ ๊ฐ๋ฐ์์ ์ธ๊ณ๋ก ๋์๊ฐ๋ ๋ฐ ์์ ๋ณดํฌ์ด ๋๊ธฐ๋ฅผ ๊ธฐ์ํฉ๋๋ค. ~
์ฃผ์ ๊ฐ์ ์ด๋ ฅ
ํจ์คํธ์บ ํผ์ค - ์ ๋ํฐ ์บ ํ 1๊ธฐ ~ 8๊ธฐ
ํ ์คํ๋ฅดํ ์จ๋ผ์ธ ํํฐ
T์์นด๋ฐ๋ฏธ
NHN ์ํฐํ ์ธ๋จผํธ
๋ท๋ง๋ธ ๊ฒ์์์นด๋ฐ๋ฏธ
ETRI (ํ๊ตญ์ ์ํต์ ์ฐ๊ตฌ์)
ํ์ฝ์ง, ๊ฒฝ์ฝ์ง, ์ฑ๋จ์ฐ์ ์งํฅ์
KAIST, ์๊ฐ๋, ์ค์๋, ํ์ฑ๋, ๋จ๊ตญ๋ ํน๊ฐ
์ฃผ์ ํ๋
์ ๋๊ฐ์ข! ์ ๋ํฐ ์งํ (์ผ๋ณธ, ์ค๊ตญ ์ถํ)
์ ๋ํฐ UNITE 2014 ์ธ์ ํน๊ฐ
์ ๋ํฐ UNITE 2018 ํธ๋์จ ์ธ์ ํน๊ฐ
์ ๋ํฐ ์ธ๋์คํธ๋ฆฌ 2022 ํธ๋์จ ์ธ์ ํน๊ฐ
์ ๋ํฐ ์ฝ๋ฆฌ์ ๊ณต์ธ ๋ง์คํฐ์ค 2๊ธฐ๋ถํฐ 5๊ธฐ๊น์ง ํ๋
Courses
Reviews
- # The Ultimate Guide! Unity - Git Collaboration Masterclass for Unity Developers
- # The Ultimate Guide! Unity - Git Collaboration Masterclass for Unity Developers
djsskach613705
ยท
Absolute Course! Unity 6 - Network Game Development Masterclass (Part3): 2D RPG Development with NetcodeAbsolute Course! Unity 6 - Network Game Development Masterclass (Part3): 2D RPG Development with Netcode- Absolute Course! Unity 6 - ECS/DOTS Programming Masterclass
- Absolute Course! Unity 6 - Building Backend Systems with UGS
Posts
Q&A
์ ๊ฐ ์ค๋ฅ์ธ๊ฑด๊ฐ์? ์๋๋ฉด ๋ด์ฉ์ด ์งค๋ฆฐ๊ฑด๊ฐ์?
์๋ ํ์ธ์. rani goo ๋ํธ์ง์ ์ค์๊ฐ ์์์ต๋๋ค. ์ด๋ฐ ์ค์๋ฅผ ํ๋ค๋ ๋๋ฌด ์ฃ์กํฉ๋๋ค.์๋ ค์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 17
Q&A
pre-push ์คํฌ๋ฆฝํธ ์๋ฃ๊ฐ ์๋๊ฑฐ๊ฐ์์~
์๋ ํ์ธ์. ๋์์ ๊ฐ์ข ๊ฐ์ด๋ฐ ํ๋จ์ ๋ณด์๋ฉด "์์ ๋ ธํธ ๋ณด๊ธฐ" ๋ฅผ ํด๋ฆญํ์๋ฉด ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ณด์ค์ ์์ต๋๋ค.ํน์ ๋ชฐ๋ผ์ ๋ค์ด๋ก๋ ๋ฐ์ ์ ์๋๋ก ํ์ผ๋ ์ฌ๋ ค ๋๋ ธ์ต๋๋ค.
- 0
- 2
- 31
Q&A
์บ๋ฆญํฐ ์ค๋ณต ์์ฑ ๋ฌธ์
์๋ ํ์ธ์. ์์ธ์ ์ฐพ์์ต๋๋ค. NetworkGameManager์ OnDestroy ์์ ์ฝ๋ฐฑ์ด ํด์ ๋์ง ์์์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋๋ค. OnDestroy ๋ฉ์๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์์ ํด์ฃผ์ธ์. ์๋ฒ ์ฌ๋ถ์ ๊ด๊ณ์์ด ์ฝ๋ฐฑ์ ์ ๊ฑฐํ๋๋ก ์์ ํ์ต๋๋ค. private void OnDestroy() { if (NetworkManager.Singleton == null) return; // IsServer ์ฒดํฌ ์์ด ๋ฌด์กฐ๊ฑด ์ฝ๋ฐฑ ์ ๊ฑฐ NetworkManager.Singleton.OnClientConnectedCallback -= OnClientConnected; }์ง๋ฌธ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 33
Q&A
์บ๋ฆญํฐ ์ค๋ณต ์์ฑ ๋ฌธ์
์๋ ํ์ธ์. ์ฝ๋๋ฅผ ํ์ธํด์ ๋์ผ ์ฆ์์ด ์๋์ง ํ์ธ ํ ๋ค์ ๋ต๋ณ๋๋ฆฌ๊ฒ ์ต๋๋ค.
- 0
- 2
- 33
Q&A
์๊ฐ ํ ๊ถ๊ธํ ๊ฒ
์๋ ํ์ธ์. ์์น๊ทผ๋, ์๊ฐ ์ถํ๋๋ฆฝ๋๋ค. ๊ฐ๋ฅ์ ํ์ง๋ง Host / Server ๋ชจ๋ ์ผ๋๋ ํธ์คํธ ํ๋์ ๋ชจ๋ ์ฐ์ฐ๊ณผ ๋คํธ์ํฌ ์ฒ๋ฆฌ๊ฐ ๋ชฐ๋ฆฝ๋๋ค. ํ๋์๋๋๊ณผ ๋์ด ๊ฑธ๋ฆด๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ๋ฐ๋ผ์ Dedicated Server ๊ฐ ํ์ํ๋ฉฐ ์ญ์ ์๋ฒ ํ๋ ๋ณด๋ค๋ ๋ถ์ฐ์ ๋ต์ ์ธ์์ผ ํฉ๋๋ค. 4๋ช ์ ๋ ์ ์ํด์ ํ๋ ์ฝ์ต ์์ค์ ์ค๊ณ์ 100์ธ ์ ์ ๋ฐฐํ๋ก์๊ธ์ ์ฒ์ ์ค๊ณ๋ถํฐ ๊ณ ๋ฏผ์ ๋ง์ด ํด์ผ ํฉ๋๋ค. ํน์ ์ง์ ์ ์ ์ ๊ฐ ๋ชฐ๋ฆด๊ฒฝ์ฐ ๋ชจ๋ ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๋ ํ์์ด ๋ฐ์ํ๊ฒ ์ฃ . ๋ก๋น์ ๋ฆด๋ ์ด๋ฅผ ์ฌ์ฉํ์ ์ผ ํฉ๋๋ค. ํธ์คํธ๋ฐฉ์์ผ๋ก๋ 100 ๋์ ์ ๊ตฌํํ ์๋ ์์ต๋๋ค. ๋ก๋น,๋ฆด๋ ์ด, ๋ฐ๋ ์๋ฒ(Unity HostServer) ๋ฐฉ์์ผ๋ก ์ฐ์ ์ ์ค๊ณ๋ฅผ ์ก์ผ์๊ณ , ์ฒ์์๋ 16๋ช -> 32๋ช -> 50๋ช ์ด๋ฐ์์ผ๋ก ๋๋ฆฌ๋ฉด์ ๋ถํํ ์คํธ๋ฅผ ํ์๊ธธ ๊ถํด๋๋ฆฝ๋๋ค.
- 0
- 1
- 38
Q&A
39๊ฐ ์ง๋ฌธ
์๋ ํ์ธ์. ์์น๊ทผ๋,์ง๋ฌธ์ฃผ์ ๋ด์ฉ ๋ ๊ฐ์ง ๋ค ์ ํํ ์ดํดํ๊ณ ๊ณ์ญ๋๋ค. ์ ๊ฐ ์ค๋ช ์ด ์กฐ๊ธ ๋ถ์กฑํ๋๋ด ๋๋ค.
- 0
- 1
- 26
Q&A
๊ธฐ์ด์ ์ธ ์ง๋ฌธ
์๋ ํ์ธ์. ์์น๊ทผ๋,์ฐ์ ์ง๋ฌธ์ ์ ๋๋ก ์ดํดํ๋์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์ํ๋จธ์ ๊ตฌํํ ๋๋ ๋ค๋ฅธ ์ฝ๋ ์์ฑํ ๋ ๊ธฐ๋ณธ Monobehavior์ ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์์ ์ฌ์ฉํ๋ ๋ถ๋ถ์ ๋ํ ์ง๋ฌธ์ด์ ๊ฒ์ผ๋ก ์ดํดํ์ต๋๋ค.์ฐ์ C#์ ๋ค์ค ์์์ ์ง์ํ์ง ์์ง๋ง Interface๋ฅผ ํตํด ๊ตฌํํ ์๊ฐ ์์ต๋๋ค.public class Enemy : MonoBehaviour, IDamageable, IInteractable { ... }๊ทธ๋ฆฌ๊ณ ํน์ ํด๋์ค์ ๋์จํ ๊ฒฐํฉ(๋์ปคํ๋ง) ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. SOLID ์์น์ค ์ธํฐํ์ด์ค ๋ถ๋ฆฌ์์น๊ณผ๋ ๋ถํฉํ๋ ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํ์๋ฉด ๋์๊ตฌ์. ์ถํ ์ฝ๋์ ํ์ฅ ๋ฐ ์์ ์๋ ์ฉ์ดํ ์ฅ์ ๋ ์์ต๋๋ค.์ด๋ค ๋ถ๋ถ์ ์ฝ๋์์ ์๊ตฌ์ฌ์ด ๋์ จ๋์ง๋ฅผ ๋ชฐ๋ผ์ ์๋ก ์ ์ธ ๋ง์๋ง ๋๋ ธ์ต๋๋ค.
- 0
- 2
- 41
Q&A
ecs๊ด์ฌ์ด ์์๋๋ฐ ๊ฐ์ ์ ๋ณด์์ต๋๋ค.
์๋ ํ์ธ์. Sura J ๋,์ข์ ์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค. 1๋ฒ์งธ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ๋๋ค.Unity ECS๋ ์ปดํ์ผ ํ์์ ๋ฐ์ดํฐ ๋ ์ด์ค์ปจ๋์ ์ ๊ฐ์งํฉ๋๋ค. ์ฆ, Burst ์ปดํ์ผ๋ฌ์ ํจ๊ป ์ฌ์ฉ๋ ๋, Unity ECS๋ ์์คํ ์ด ์ ๊ทผํ๋ ๋ฐ์ดํฐ์ ๋ํ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๊ถํ์ ๋ถ์ํ์ฌ ๋ฐ์ดํฐ ๋ ์ด์ค๋ฅผ ๋ฐฉ์งํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ , ITriggerEventsJob ์ ๊ฐ ์ถฉ๋ ์ด๋ฒคํธ๋ง๋ค Execute ๋ฉ์๋๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ํธ์ถ๋ฉ๋๋ค. ์ฆ, ๊ฐ ์ถฉ๋ ์ด๋ฒคํธ๋ ๋ณ๋์ ์์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ฉฐ, ์ด๋ก ์ธํด ๋ ์ด์ค๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์ค์ด๋ญ๋๋ค.์ถฉ๋์ฒ๋ฆฌ๊ฐ ๋ฏธ์คํ๋ Enemy๊ฐ ๋ณด์ธ๋ค๊ณ ํ์ จ๋๋ฐ, ์๋ง๋ ๋์ผํ ์ํฐํฐ์ ๋ํด ์ฌ๋ฌ ์ถฉ๋ ์ด๋ฒคํธ๊ฐ ๋์์ ๋ฐ์ํ์ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ์ถ์ธก๋ฉ๋๋ค.(์ ํํ์ง๋ ์์ง๋ง) ๋ฐ๋ผ์ ๊ฐ์ ์ง์ ๋ณ๊ฒฝํ๋๋ฐ์ EntityCommandBuffer ์ฌ์ฉํ๊ฑฐ๋ NaviveQueue๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ ๊ณ ๋ คํด๋ณผ ์ ์์ต๋๋ค.์ด ๋ถ๋ถ์ ์ ๋ ํ ์คํธ๋ฅผ ํด๋ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.[ReadOnly] ์์ฑ๊ณผ Job Dependency๋ก ๊ธฐ๋ณธ์ ์ผ๋ก thread-safeํ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ์ง๋ง, ํน์ ์ํฉ์์๋ ์ถ๊ฐ์ ์ธ ๋๊ธฐํ ๊ณผ์ ์ด ํ์ํ ์ ์์๊ฒ ๊ฐ์ต๋๋ค. 2๋ฒ์งธ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ๋๋ค.์ฐ์ ๋ง๋ง๋ฆฌ ์ด์์ ๊ฒฝ์ฐ ์ฑ๋ฅ์ ํ์ ๋ํ ์ฐ๋ ค์ ๋ํด ์ง๋ฌธํ์ จ๋๋ฐ์.์ฒซ๋ฒ์ฌ๋ ์ํฐํฐ ์๊ฐ ๋ง์์๋ก Job ์๋ฃ ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง์ ์๊ณ , ๋๋ฒ์งธ๋ ComponentLookup์ ์บ์ ๋ฏธ์ค๊ฐ ์ฆ๊ฐํ ์ ์์ต๋๋ค. ์ฝ๋๋ฅผ ๊ฒํ ํด๋ณด๊ณ ๊ฐ์ ํ ์ ์๋ ๋ถ๋ถ์ด ์๋์ง ํ์ธํด ๋ณด์์ต๋๋ค. ์ฐ์ EnemyMovementSystem, EnemyHpBarSystem์ ๊ฒฝ์ฐ ์์คํ ์ ์คํ ์์๋ฅผ ๋ช ํํ ๋ช ์ํ๋ ๊ฒ์ด ์ข์๊ฒ ๊ฐ์ต๋๋ค. // EnemyMovementSystem [UpdateInGroup(typeof(SimulationSystemGroup))] [UpdateAfter(typeof(FixedStepSimulationSystemGroup))] // ์ถฉ๋ ์ฒ๋ฆฌ ํ ์คํ partial struct EnemyMovementSystem : ISystem { ... } // EnemyMovementSystem [UpdateInGroup(typeof(SimulationSystemGroup))] [UpdateAfter(typeof(FixedStepSimulationSystemGroup))] // ์ถฉ๋ ์ฒ๋ฆฌ ํ ์คํ partial struct EnemyMovementSystem : ISystem { ... }๊ฐ์์์๋ ์ ์บ๋ฆญํฐ๋ฅผ ๋ฆฌ์คํฐํ์ง ์์์ง๋ง ๋ง์ฝ ๋ฆฌ์คํฐ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค๋ฉด ํ๋ง ๊ธฐ๋ฒ์ ์ฌ์ฉํด Enemy๊ฐ ์ฃฝ์์ ๋ Entity๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด ์๋๋ผ ๋นํ์ฑํํ๋ ๋ฐฉ๋ฒ๋ ๊ณ ๋ คํด๋ณผ ์ ์์ต๋๋ค.๋ฏธ์ณ ์๊ฐํ์ง ๋ชปํ๋ ๋ถ๋ถ์ ๋ํด ์ข์ ์ง๋ฌธ์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ข ํฉ์ ์ผ๋ก ์ฝ๋๋ฅผ ๋ค์ ํ๋ฒ ๊ฒํ ํด๋ณด๊ณ ์ต์ ํํ ์ ์๋ ๋ถ๋ถ์ด ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 1
- 2
- 66
Q&A
Default Player Prefab ํ๊ดด์ ์ฌ์์ฑ
๋ค, ๊ฐ๋ฅํฉ๋๋ค. ~๋ค์๊ณผ ๊ฐ์ด ์ปค์คํ ์คํฐ ๋ก์ง์ ๊ตฌํํ์ค ์ ์์ต๋๋ค. ํ์ง๋ง ๋ณดํต ๋คํธ์ํฌ ๊ฒ์์์ ์ฃผ์ธ๊ณต ์บ๋ฆญํฐ๋ฅผ ์ญ์ ํ์ง๋ ์์ต๋๋ค. (๋คํธ์ํฌ ์ธ์ ์ด ์ข ๋ฃ๋ฉ๋๋ค.) ๋ฐ๋ผ์, ๋ฆฌ์คํฐ ์๊ฐ๋์ ์บ๋ฆญํฐ๋ฅผ ๋นํ์ฑํํ๋ค๊ฐ ๋ค์ ํ์ฑํ์ํค๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. var player = Instantiate(playerPrefab, spawnPos, Quaternion.identity); player.GetComponent().SpawnAsPlayerObject(clientId, true);
- 0
- 2
- 38
Q&A
์บ๋ฆญํฐ ๋คํธ์ํฌ ์ ๋๋ฉ์ด์ ์ง๋ฌธ (29๊ฐ์)
์๋ ํ์ธ์. ๋ค, Server Authority ์ ๋ํด ์ ํํ ์ดํดํ์ จ์ต๋๋ค. ๋ํ, ์๋ฒ์์ ๋ณ๋ค๋ฅผ ์ฝ๋๊ฐ ์์ด๋ ์คํ ๊ถํ์ Server๋ก ์คํํ์ ๋ ์ ๋๋ฉ์ด์ ์ ์คํํ๋ฉด ๋ค๋ฅธ ํด๋ผ์ด์ธํธ์๊ฒ๋ NetworkAnimator์ ์ํด ์๋์ผ๋ก ์ ์ก์ด ๋ฉ๋๋ค. ์ง๋ฌธ ์ญ์ ์ ํํ ์ดํดํ๊ณ ๊ณ์ญ๋๋ค. Transform ์ ๊ฒฝ์ฐ ์๋ฒ ๊ถํ์ผ ๊ฒฝ์ฐ ํด๋ผ -> ์๋ฒ -> ํด๋ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ด๋ํ๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ ๋ ์ดํด์๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ์๋ ๋ณ๋๋ก ํด๋ผ์์ ๋คํธ์ํฌ ๋ ์ดํด์๋ฅผ ๊ณ ๋ คํด ์์น ๋ณด์ ์์ ์ ํด์ฃผ์ด์ผ ํ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.ํด๋ผ์ด์ธํธ ์คํ์ ํด๋ผ์์ ์ง์ ์คํ(์์น, ์ ๋๋ฉ์ด์ ๋ฑ)ํ๋ ๊ฒ์ ์๋ฏธํ๊ณ , ์คํ ์์ฒญ์ด๋ ์๋ฏธ๋ ์๋ฒ์ธก์ ์์ฒญ์ ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.์๊ฐํ์๋ค๊ฐ ๋ ๊ถ๊ธํ์ ์ ์ด ์์ผ์๋ฉด ํธํ๊ฒ ์ง๋ฌธํด์ฃผ์ธ์.๊ผญ ์๊ฐํ์๊ธธ ์์ํฉ๋๋ค.
- 0
- 1
- 35





