Profiling
Memory
Adaptive Performance
Programming and code architecture
Project configuration
Assets
Graphics and GPU optimization
User interface(UI)
Audio
Animation
Physics
ํ๋กํ์ผ๋ฌ : ์ ํ๋ฆฌ์ผ์ด์
์ ์ฑ๋ฅ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ๋ ํด์ด๋ค.
ํ๋กํ์ผ๋ฌ๋ฅผ ์ผ์ ์ฑ๋ฅ์ธก์ ์ ํ๊ณ , ์ด๋์ ๋ณ๋ชฉํ์์ด ๋์ค๋์ง ์ ํํ๊ฒ ํ์ธ์ ํด์ผํ๊ณ ์ต์ ํ์ ๋ค์ด๊ฐ์ผํ๋ค.
์ฑ๋ฅ์ด ํ๋ฝํ๋ค๊ณ ๋ฌด์์ ๋ฆฌ์์ค ๋ณ๊ฒฝ์ ์์ฒญํ์ง๋ง๊ณ , ์ด๋ค ๋ถ๋ถ์์ ์ฑ๋ฅ ์ ํ๊ฐ ์์๋์ง ํ์ธํด๋ผ.
ํ๋กํ์ผ๋ง์ ์ฃผ ์ฑ
์์๋ ํ๋ก๊ทธ๋๋จธ๋ผ๋์ ์ ์์ผ๋ฉด ์๋๋ค.
๋ง์ง๋ง ๋ค ๋์ด์ ๋น๋ํ ๋๊ฐ ๋์์ ๋ ํ๋กํ์ผ๋งํ๋ฉด ๋ฌธ์ ๊ฐ ์๊ธด๋ค.
์๋ฅผ ๋ค์ด ๋ชจ๋ ๊ฐ๋ฐ์ ๋ง์น๊ณ ํ๋กํ์ผ๋ง์ ํด๋ดค๋๋ฐ ์์ด๋์์ ์ฑ๋ฅ ์ด์๊ฐ ๋ฌ๋ค๊ณ ๊ฐ์ ํ์.
์ด๋ฏธ ๊ฑฐ์ ๋ค ํ ํ๋ก์ ํธ์ ๋ฆฌ์์ค๋ค์ ๊ฐ์์์ด์ผํ๋ ์ํฉ์ด ๋ฐ์ํ๋ค. ์ผ์ ์ด ๋ค ๋ฏธ๋ค์ง๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์์๋ก ํ๋กํ์ผ๋ง์ ํด์ผํ๋ค.
๊ทธ๋์ผ ์ถ์ ๋งํ์ ๊ฐ์ ๋ถ์์ฌ๊ฐ ์๊ธฐ์ง ์๋๋ค.
PC์ฑ๋ฅ, ํด๋ํฐ์ ์ฑ๋ฅ์ด ๋ค๋ฅด๊ธฐ๋๋ฌธ์ ๊ฐ ๋๋ฐ์ด์ค์์์ ๋ณ๋ชฉ์ง์ ์ด ๋ฌ๋ผ์ง๋ค.
์๋ํฐ์์ ์ธก์ ํ ์ฑ๋ฅ์ ๋ฌํํ ์ฉ๋๋ก ๋ณผ ์๋ ์์ง๋ง, ์ค์ ๊ธฐ๊ธฐ์์์ ์ํฉ์ ๋ค๋ฅด๋ค๋ ๊ฒ์ ์์์ผํ๋ค.
์ฌ๋ฌ ๋๋ฐ์ด์ค์์ ๋์๊ฐ์ผํ๊ธฐ ๋๋ฌธ์ ์ต์ ๋๋ฐ์ด์ค๋ฅผ ์ ํ์ฌ ๋์๊ฐ๋์ง ํ
์คํธ๋ฅผ ์งํํ๋ผ.
iOS๋ Xcode / ์๋๋ก์ด๋๋ ์๋๋ก์ด๋ ์คํ๋์ค์์ ์ ๊ณตํ๋ ํ๋กํ์ผ๋ฌ๋ฅผ ์ถ์ฒํ๋ค.
์ฑ๋ฅ ์ธก์ ์ ํ ๋ ๋ณดํต FPS๋ก ๋ง์ด ๋ฐ์ง๋ค. ๊ทธ๋ฌ๋ FPS ์ธก์ ์น๋, ๋ฌํํ๊ฒ ๋ณผ์์๋ ํ์ง์์น๊ธด ํ๋ฐ, ๋ณ๋ชฉ์ ํ์งํ๊ณ ๋ณ๋ชฉ์ ์์ ํ๊ณ ๋ณ๋ชฉ์ ๋ํ ํด๊ฒฐ์ฑ
์ ์ธ์ฐ๊ธฐ์๋ ์ข์ ์์น๋ ์๋๋ค.
ํ๋กํ์ผ๋ฌ๋ฅผ ๋ณด๋ฉด ms ๋ก ๋ง์ด ๋์์๋ค. ์ฑ๋ฅ ์ธก์ฒญ์์ ms๋ก ์ฑ๋ฅ ์ธก์ ์ ํ๋๊ฒ์ด ์ข๋ค.
FPS = 1000/ms (1์ด์ ๋ชํ๋ ์์ ๊ทธ๋ฆฌ๋)
ms = 1000/FPS (1ํ๋ ์์ ๊ทธ๋ฆฌ๋๋ฐ, ์ผ๋ง๋งํผ์ ์๊ฐ์ด ํ์ํ๋?)
์๋ฅผ๋ค์ด์
30ms๊ฐ ์ธก์ ๋์๊ณ
๋ ๋๋ง์ 5ms / ์
๋ฐ์ดํธ 5ms / ๋ฌผ๋ฆฌ์ฒ๋ฆฌ 20ms ๋ก ์ธก์ ๋์์ผ๋ฉด. ํ๋ฉด ๋ฑ ๋ดค์ ๋ ๋ฌผ๋ฆฌ์ฐ์ฐ๋ถ๋ถ์์ ์ต์ ํํ๋๊ฒ์ด ์ข๊ฒ ๋ค๋ผ๊ณ ํ๋ฌํ ์ ์๋ค.
์ธก์ ์ ํ ๋ CPU ๋ฐ์ด๋๋ฆฌ์ ๋ฌธ์ ์ธ์ง, GPU ๋ฐ์ด๋๋ฆฌ์ธ์ง ์ฒดํฌ๋ฅผ ํด์ผํ๋ค.
CPU GPU ๋ณ๋ ฌ์ ์ผ๋ก ๋์๊ฐ๊ธฐ ๋๋ฌธ์, CPU ์ต์ ํํด๋ GPU ์ฑ๋ฅ ๋ณํ๊ฐ ์๋ค. ๊ทธ๋์ CPU ๋ณ๋ชฉ์ธ์ง GPU ๋ณ๋ชฉ์ธ์ง ๋ด์ผํ๋ค.
PC์์๋ ๋์คํฌ ๋๋นตํฐ๊ฑฐ ์ฝ~ ํ๋ฉฐ ๋์๊ฐ๋ค.
๊ทผ๋ฐ ๋ชจ๋ฐ์ผ์ ์ฟจ๋ฌ๊ฐ ์๋ค. ๋๊ฐํ์ ๋๋ก ์์ฃผ ์์๊ฒ ์์๋ฟ์ด๋ค. ๋ฐ์ด์ ์ทจ์ฝํ ์๋ฐ์ ์๋ค.
ํฐ์ด ๋จ๊ฑฐ์์ง๋ฉด ํ๋ก์ธ์๋ ์ฑ๋ฅ์ ๋ฎ์ถฐ๋ฒ๋ฆฐ๋ค.(์ด์ ๋ฎ์ถ๊ณ ๊ธฐ๊ธฐ๋ฅผ ๋ณดํธํ๊ธฐ์ํด) -> ์ค๋กํ๋ง
๋ฉ๋ชจ๋ฆฌ ์ ์ธ ์ธก๋ฉด์์ ๋ชจ๋ฐ์ผ์ด PC ๋ณด๋ค ์ทจ์ฝํ๋ค.
PC์๋ CPU, RAM, Storege๊ฐ ๊ตฌ์ฑ๋์ด์๋ค.
RAM ์ด 8G ์ง๋ฆฌ๋ผ๊ณ ๊ฐ์ ํ๊ณ , ๊ฒ์ 16๊ธฐ๊ฐ์ง๋ฆฌ๋ฅผ ๋๋ ธ๋ค๊ณ ๊ฐ์ ํ์. ์๋์๊ฐ ๊ฒ ๊ฐ์ง๋ง ๋์๊ฐ๋ค. ์๋๋ฉด Storege์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฉํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ฌ๋งํด์ ํ๋ก๊ทธ๋จ์ด ์ฃฝ์ง ์๋๋ค.
๋ชจ๋ฐ์ผ์ ์นฉ ํ๋์ ๋ค ๊พธ๊ฒจ ๋ฃ๋ค๋ณด๋ ์ผ๋จ RAM์ด ์์ฃผ ์๋ค.
๊ทธ๋ฆฌ๊ณ PC์์ ์์๋ ์ ์ฅ์ฅ์น์ ์ผ๋ถ๋ฅผ ์ ์ฅ๊ณต๊ฐ์ผ๋ก ํ์ฉํ๋ ๊ทธ๋ฐ ๊ธฐ๋ฅ์ด ์๋ค.
์ฆ, 8๊ธฐ๊ฐ ๋จ์ ๋ผ์ ๋๋ฐ ๊ฒ์ 8๊ธฐ๊ฐ์ง๋ฆฌ ๋๋ฆฌ๋ คํ๋ฉด ํ๋ก๊ทธ๋จ์ด ์ฃฝ์ด๋ฒ๋ฆฐ๋ค.
C#์ ๊ฐ๋น์ง์ปฌ๋ ํฐ๋ก ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ค.
C++์ delete๋ก ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฅผ ์ง์ ํด์ค์ผํ๋ ๊ฒ๊ณผ ๋ค๋ฅด๋ค.
๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ ์ ๋๋ ์ด์
๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์ญ ๋์๊ฐ๋ฉฐ ref ์นด์ดํธ๋ฅผ ๋๋ฆฌ๋ฉด์ ์นด์ดํธ๊ฐ 0์ธ ์์๋ฅผ ๋ ๋ ค๋ฒ๋ฆฐ๋ค.
์ฃผ๊ธฐ์ ์ผ๋ก ์ด๋ ๊ฒ ๋์๊ฐ๋ ์ฑ๋ฅ์ ์ํฅ์ด ์์ ์ ๋ฐ์ ์๋ค.
๋ํ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น๊ณผ ํด์ ๊ฐ ๋ฐ๋ณต๋๋ค๋ณด๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ด๋นจ๋น ์ง ๋ชจ์์ด ๋๋ค.(๋ฉ๋ชจ๋ฆฌ ๋จํธํ๋ฌธ์ )
๊ฐ๋น์ง์ปฌ๋ ํฐ๋ ์ด๋นจ๋น ์ง ๋ถ๋ถ์ ์ฌ๋ฐฐ์นํด์ ๋น์นธ๋ค์ ์์ ๋ฒ๋ฆฐ๋ค. (๋ฉ๋ชจ๋ฆฌ ์์ถ๊ธฐ๋ฒ)
์ด ๋ํ ์ฐ์ฐ์ด ๋ง๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก C#์ ์ฌ์ฉํ๋ฉฐ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ ๋๊ฒ ํ๋ฉด ์๋๋ค.
๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ผ์ด๋๋ฉด ์ผ์ด๋ ์๋ก GC์ ๋ถ๋ด์ด ๋ง์์ง๋ฏ๋ก ํ ๋น์ ์ต๋ํ ์ค์ฌ์ผํ๋ค.
์๋ฅผ ๋ค์ด์ Json, XML ํ์ฑํ๋ ํ๋ก์ ํธ๋ฅผ ํ๊ฒ๋๋ฉด ๋ฌธ์์ด ๋ง์ด์จ์ ๊ณ์ GC์ ํ๊ฒ์ด ๋๋ค.
์ด ๋์์ผ๋ก ์ฌ์ ๋น๋๋จ๊ณ๋ ์ฌ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ๋ ์์
๋ฐ์ดํฐ๋ก ๋ณํํด์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํด์ผํ๋ค.
๋ ๋ค๋ฅธ ์๋ก ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๊ฐ ์๋ค๊ณ ํ์.
m_Animator.SerBool("Jump",true);์ ๋๋ฉ์ดํฐ jump๋ฅผ false๋ก ํ๋ค. ์ด ๋ถ๋ถ์์ string ๋งค๊ฐ๋ณ์๋ก ๋๊ฒจ์ฃผ๊ธฐ๋๋ฌธ์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ ๋์์ด๋ค
๊ทผ๋ฐ ๋ง์ฝ ์ด ์คํฌ๋ฆฝํธ๋ฅผ update๋ฌธ์ ์จ๋ฒ๋ฆฌ๋ฉด ์ฑ๋ฅ์ ํ๊ฐ ๋งค์ฐ ๋ง์ด๋ ๊ฒ์ด๋ค.
์ด ๊ฒฝ์ฐ์๋ id๋ฅผ ๋ค๊ณ ์์ ์ฌ์ฉํ๋๋ก ํ์.
์ฝ๋ฃจํด ๊ฐ์ ๊ฒฝ์ฐ์๋. yeild return new.. ์ด๋ ๊ฒ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉํด์, ๊ฐ๋น์ง์ปฌ๋ ํฐ ์๋๋๋ค. ๊ทธ๋์ ์บ์ฑ์ ํด์ ์ด๋ค๋ฉด ๊ฐ๋น์ง๊ฐ ๋ฐ์ํ์ง ์์๊ฒ์ด๋ค.
์๋๋ก์ด๋ํฐ๊ฐ์ ๊ฒฝ์ฐ ์ธ ์ ์๋ค.
๊ฐ๋ณ์ ์ธ ํผํฌ๋จผ์ค ์กฐ์ ํ ์ ์๋ค.
(1) ๋ช
์์ ์ผ๋ก ํด๋ํฐ ๋จ๊ฑฐ์ด์ง ์์์๊ณ
(2) ์ค๋กํ๋ง์ด ๋น ์ง๋ ์ํฉ์ธ์ง, ์ง์ ์ธ์ง, ์๋ ์ํฉ์ธ์ง ์ ์ ์๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ํผํฌ๋จผ์ค๋ฅผ ์ปจํธ๋กค ํ ์ ์๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ฝ๋ฉํ ๋ ์ ๊ฒฝ์จ์ผํ๋ ๋ถ๋ถ์ด๋ค.
์์๋ฅผ ์๊ณ ์์ด์ผ ์ฑ๋ฅ์ ์ข ๋ ์ ๊ฒฝ์ฐ๋ฉด์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค.
MonoBehavior ์คํฌ๋ฆฝํธ๋ฅผ ์์๋ฐ์ ์ผ์ ๋, Updateํจ์๊ฐ ์ฝ๋๋ธ๋ญ์ด ๋น์ด์์ด๋ ์ ์ธ๋ง ๋๋ฉด ์ฑ๋ฅ์ ๋จน๊ณ ์๋ค.
void Update()
{
}๋น ํจ์๋ ์ ๊ฑฐํ๋๊ฒ ์ข๋ค. ์๋ํฐ์์๋ง ๋์๊ฐ๋ ๋ก์ง์ด ์์ผ๋ฉด,
#if UNITY_EDITOR
void Update()
{
}
#endif์ด๋ ๊ฒ define์ผ๋ก ๋ง์๋ฒ๋ ค์ผํ๋ค. ์ด๋ ๊ฒ ํด์ผ ์ต์ข
๋ฆด๋ฆฌ์ฆ๋๋ ํฌํจ์ด ์๋๋ค.
Debug.Log๋ฅผ ๋ฆด๋ฆฌ์ฆ๋ชจ๋๋ก ๋ฐฐํฌ๋ฅผํ๋ฉด ํธ์ถ์๋๋์ค ๋ง์ด๋ค ์๊ณ ์๋๋ฐ, ์๋๋ค. ๋น๋ํ์ผ์ ๋ค ๋ค์ด๊ฐ๋ค.
์ปดํฌ๋ํธ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ถ์๋ค ๋ผ์๋ค ํ๋๊ฒ์ด ์ฑ๋ฅ์ ๋ง์ด๋จน๋๋ค. AddComponent ๋์ ์ผ๋ก ํ๋ฉด ์์ข๋ค.
๊ฒ์ ์ค๋ธ์ ํธ ์ปดํฌ๋ํธ๋ฅผ GetComponent๋ก ์ป์ด์๊ณ ์์ฃผ์ฐ์ธ๋ค๋ฉด ์บ์ฑํด๋๊ณ ์ฐ๋๊ฒ ์ข๋ค. ๋งค ํ๋ ์๋ง๋ค GetComponent ํ๋ฉด ์ฑ๋ฅ์ ๋จน๋๋ค.
private Renderer myRenderer;
void Start()
{
myRenderer = GetComponent<Renderer>();
}
void Update()
{
Func(myRenderer);
}๋ชจ๋๊ฐ ์๊ณ ์๋ฏ์ด ์ค๋ธ์ ํธ ํ๋ง์ ํด์ผํ๋ค.
์๋ฅผ ๋ค์ด ์ํ
๊ฒ์ ๊ฐ์ ๊ฒฝ์ฐ ์ด์์ ๋งค๋ฒ new ํ๋๊ฒ ์๋๊ณ , ํ๊บผ๋ฒ์ ๋ง๋ค์ด๋๊ณ ์ฌํ์ฉํด์ ์จ์ผํ๋ค.
์ฃผ์์ : activePool ๊ป๋ฐ๊ธฐ root์ ์ค๋ธ์ ํธ๋ฅผ ๋ง๋ค๊ณ , ๋ DisabledPool ๋นํ์ฑํ๋ ์ค๋ธ์ ํธ๋ค ์ฎ๊ธฐ๊ณ ์ด๋ฐ์์ผ๋ก root๋ฅผ ์๋ค๊ฐ๋คํ๋ฉด ์ด์๊ฒ ํ์ด์ด๋ผ์ดํค ์ฐฝ์ด ์ ๋ ฌ๋๊ธดํ๊ฒ ์ง๋ง setParent ๋ผ๋๊ฒ์ ํตํด์ ์ฌ๊ธฐ์ ๊ธฐ ๋ฆฌํ์ด๋ฐํ
๋๋ค. ์ฆ, ์ฑ๋ฅ์ ๋จน๋๋ค.
์ฌ๋งํ๋ฉด ์ํ๋๊ฒ ๋ซ๋ค.
์ ๊ทน๊ถ์ฅํ๋ค.
๊ณตํต์ ์ธ ์์ฑ์์ ๋ฌถ์ด ์ด๋ค.
์์ ๊ตฌ์กฐ๋กํ๋ฉด ์ฝ๋ฉํ ๋๋ ๊ตฌ์กฐ์ ์ผ๋ก ์์๊ฒ ์ง๋ง, ์ฑ๋ฅ์ ์ผ๋ก ์์ข์์์๋ค. ํ๋ผ๋ฏธํฐ๊ฐ ๋ง์์๋ก ์ง๋ ฌํ๊ฐ ์ผ์ผ์ด ๋ค ๋๋ค. -> ์ฑ๋ฅ์ด์
์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ๋ ์์
์ด๊ณ , ์ง๋ ฌํ๊ฐ ์ด๋ฏธ ๋์ด์๋ ์์ด์ด๊ธฐ๋๋ฌธ์ ๊ทธ๊ฑธ ๊ฐ์ ธ๋ค์ฐ๋ฉด, ์ฑ๋ฅ์ ์ผ๋ก ์ด๋์ด๋ค.
๋๊ฑฐ๋ ์ค์ฌ๋ผ. -> ๋ด๊ฐ ์์ฐ๋๊ฒ๊ฐ์ผ๋ฉด ๋๊ฑฐ๋ ์ค์ด๋ฉด ๋๋ค.
ํ๋ ์ด์ด ํ๋ฆฌํฐ์ธํ
, Auto Graphics API(OpenGL ๋ฒ์ ๋ณ๋ก์ผ์ ธ์์) ์ด๋ฐ๊ฑฐ๋ ์์ฐ๋๊ฑด ๊บผ๋ฒ๋ ค๋ผ.
๋ฌผ๋ฆฌ์ชฝ๋ ํ์์๋๊ฑด ๊บผ์ผํ๋ค.
์ ๋ํฐ ๊ณต๊ฐ๊ณผ ๋ฌผ๋ฆฌ๊ณต๊ฐ์ด ๋ฐ๋ก์์ด์, ๊ฒ์ ์ค๋ธ์ ํธ์ ๋ฌผ๋ฆฌ๊ณต๊ฐ์ด๋ ๋๊ธฐํ๋ฅผ ์์ผ์ฃผ๋ ๊ณผ์ ์ด ์๋ค.
๋ณดํต์ ๊ทธ ๋๊ธฐํ์์ผ์ฃผ๋๊ฒ FixedUpdate์์ ๋ณดํต ์งํ์ ํ๋ค.
Auto Simulation, Auto SyncTransforms ์ด๊ฒ ๊ฐ์ ๋ก ๋๊ธฐ๋ฅผ ํด์ฃผ๋๊ฑฐ์ฌ์, ๋ฌผ๋ฆฌ๊ฐ ์ค์ํ์ง ์๋ ๊ฒ์์ด๋ฉด ๊บผ์ฃผ๋๊ฒ ์ข๋ค.
๋ฐ์ด์ด ์ฌํด์ ธ๋ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค๋ ์๋ฏธ์ด๋ค.
์ก์
๊ฒ์์ด๋ฉด ํ์ผ ํ๋ ์ 40-50 ์ด๋ฐ๊ฑฐ
ํผ์ฆ๊ฒ์์ด๋ฉด ํ๊ฒ ํ๋ ์ 30
ํ๋ ์ ๋ ์ดํธ๋ฅผ ์กฐ์ ํ์ฌ ๋ฐ์ด๊ณผ ํจ์จ์ฑ ํผํฌ๋จผ์ค๋ฅผ ์ข๊ฒํด๋ผ.
์ฌ ์์ ๋ง
์ด๋ฐ์์ผ๋ก ๊ตฌ์กฐ๊ฐ ์๋ค๊ณ ํ๋ฉด A ์ค๋ธ์ ํธ๋ฅผ ์์ง์ด๋ฉด ์๋ ๊น๋ ค์๋ ์ ๋ค๋ transform ์ฌ์ฐ์ฐ์ด ๋์ด์ผํ๋ค.
๊ทธ๋ผ ํ๋ฒ A ์ค๋ธ์ ํธ๋ฅผ ์์ง์์ ๋ฟ์ธ๋ฐ ๋ธ๋ ค์๋ ํธ๋์คํผ ์ฐ์ฐ์ด ์์ฒญ ๋ง์์ง๋ ๊ฒ์ด๋ค.
๊ทธ๋์ ํ์ด์ด๋ผ์ดํค๋ฅผ ๋ณต์กํ๊ฒ ํ๋ฉด ํ ์๋ก ์ฑ๋ฅ์ด์๊ฐ ์๊ธด๋ค๋ ๊ฒ์ด๋ค.
ํ์ด์ด๋ผ์ดํค๊ฐ ๋จ์ํ๋ฉด ๋จ์ํ ์๋ก ํจ์จ์ ์ผ๋ก ๋๋ฆด ์ ์๋ค.
๋ง์ฝ ํ ์บ๋ฆญํฐ ์์ move.cs, Jump.cs, Dash.cs, Dodge.cs ์๋ค๊ณ ๊ฐ์ ํ์.
์ด ์คํฌ๋ฆฝํธ๋ฅผ ๊น๋ดค๋๋ ๋ชจ๋ ํธ๋์คํผ์ ๊ฑด๋ค์ด๊ณ ์๋ค๊ณ ํ๋ฉด, ํ ํ๋ ์ด์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์ ํธ๋์คํผ ์ฐ์ฐ์ด ์์ฒญ ๋ง์ด ๋งค๋ฒ ์ผ์ด๋๊ฒ ๋๋๊ฒ์ด๋ค.
๋ํ ์ฝ๋ ์์ฑํ ๋
transform.position- = ...
transform.rotation- = ...์ด๋ฌ๋ฉด ํ์คํ์ค ๋ค ์ฌ์ฐ์ฐ์ผ์ด๋๋ค. (๋๋ฒ ์ผ์ด๋๋ค.)
ํ๋ฒ์ ์ฒ๋ฆฌ๋๋ ํจ์๋ฅผ ์ ํ์ฉํ์.
์ด๋ฏธ์ง๋ ์ฌ์ด๋๋ค์ด ํฌ๋งท์ด ๋ค์ํ๋ฐ, ์ ๋ํฐ ์
์ฅ์์๋ ํฌ๋งท์ ๋ค์ ๋ณํํ๊ฒ ๋๋ฏ๋ก ์๋ณธ ํฌ๋งท ์ด๋ค๊ฒ์ธ์ง๋ ์ฑ๋ฅ์ ์๊ด์๋ค.
Texture ์ค์ ์ ํ๋ซํผ๋ณ๋ก ์ค๋ฒ๋ผ์ด๋๋ฅผํ ์์๋ค. (์ธํ
์ ํด์ค ์ ์๋ค)
*) ํ
์ค์ณ ์ฌ์ด๋๋ 2์ n์น์ผ๋ก ํด์ผํ๋ค. (POT)
์ด๊ฑด ์ฌ๋งํ๋ฉด ๋๋๊ฒ ์ข๋ค.
๋ฐ์ดํฐ๋ฅผ ์ฝ์๋, SSD, HDD ๊ฐ ์์ผ๋ฉด RAM์ ์ฌ๋ฆฌ๊ณ , VRAM(๋น๋์ค ๋ฉ๋ชจ๋ฆฌ,GPU๋ฉ๋ชจ๋ฆฌ)์ ์ฌ๋ฆฌ๊ฒ ๋๋ค.
GPU๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๊ฒ์ CPU ๋ฉ๋ชจ๋ฆฌ์์ ๋ ๋ ค๋ฒ๋ฆฐ๋ค.
ํ์ง๋ง ์ด Read/Write Enable์ ์ฒดํฌํ๋ฉด CPU ๋ฉ๋ชจ๋ฆฌ์ ์์ ์ง์๊ณ ๊ทธ๋๋ก ๋จ์์๊ฒ ํ๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋๋ฒ ์ฌ๋ผ๊ฐ์๊ธฐ๋๋ฌธ์ ์ต๊ฐํ๋ฉด ๋๋๊ฒ ์ข๋ค.
MipMap์ 512 ํ ์ค์ณ๊ฐ ์์ผ๋ฉด, 245, 129... ๋ณต์ฌ๋ณธ๋ค์ ๋ง๋๋๊ฒ์ ๋งํ๋ค.
๊ทธ๋ผ ๋ฉ๋ชจ๋ฆฌ์์ญ์ด 33% ๋ปฅํ๊ธฐ๊ฐ ๋๋ค.
ํ์ง๋ง 3D ๊ฒ์์์๋ ๋ฉ๋ฆฌ์๋ ์ค๋ธ์ ํธ ๊ฐ๊นํ ์๋ ์ค๋ธ์ ํธ๊ฐ ๋ง์ ์ฐ์ฐ์์ด ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ๋ฐํ์ ํจ์จ, ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ ์ธ ์ธก๋ฉด์์ ํ์ํ๋ค.
๊ทธ๋ฐ๋ฐ, 2D๊ฒ์์์๋ ์ผ๋ฐ์ ์ผ๋ก ๊บผ์ผํ๋ค!! ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋งค์๋ ์ํฌํธ ์ธํ
ํ ๋ ํ๋ผ๋ฏธํฐ ๋ง๋ค.
Compress the mesh -> ์์ถํ๋ ๊ฒ. ๋ฐ์ดํฐ ์ ๋ฐ๋๋ฅผ ๋จ์ด๋จ๋ฆฌ๋๊ฑฐ๊ธดํ๋ค. ๋นก์ธ๊ฒํ๋, ์๊ฐ์ ํ์ง์ฐจ์ด๋ฅผ ๋ณด๋ฉด์ ํด์ผํด์ผํ๋ค.
Disable Read/Write ๋ฉ์๋ฅผ ๋์ ์ผ๋ก ์กฐ์ํ๋๊ฒ ์์ผ๋ฉด, ๊ธฐ๋ฅ ๋๋๊ฒ์ด ์ข๋ค. ํ
์ค์ณ๋ ๋๊ฐ์ ๊ด์ ์ด๋ค.
์์ฐ๋๊ฒ๊ฐ๋ค ํ๋ฉด ๊บผ์ผํ๋ค.
์คํค๋ ์ฐ์ฐ์ด ์์ผ๋ฉด rig๋ฅผ ๋๋ฉด ๋๋ค. ๋ธ๋๋ ์์
(์บ๋ฆญํฐ ํ์ ๋ฑ)์์ฌ์ฉํ๋ ๋งค์๋ฉด ๊บผ๋ฒ๋ฆฐ๋ค. (๋ฐฐ๊ฒฝ๊ฑด๋ฌผ, ๋ฏธ์ฌ์ผ ์ค๋ธ์ ํธ๋ฉด ๋๋ฉด๋๋ค.)
Tangent -> ๋
ธ๋ฉ๋งต์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ํ์ ํธ ๋๋ฉด๋๋ค.
๋งค๋ฒ ์ด๋ ๊ฒ ๊ป๋ค ์ผฐ๋ค ํ ์๋ ์์ผ๋(์ค์ํ ์๋) AssetPostprocessor ๋ผ๋๊ฒ ์๋ค. ์ด๊ฑธ์ฐ๋ฉด ์๋ํํ ์ ์๋ค.
์ต์ ๋ฒ์ ๋ถํฐ๋ URP๊ฐ ๊ธฐ๋ณธ์ด๋ค. ๊ธฐ์กด ํ์ดํ๋ผ์ธ๋ณด๋ค๋ URP๊ฐ ์ฑ๋ฅ์ด ์ข๋ค.
URP์์๋ ๋๋ก์ฐ์ฝ ์ ์ฝํ ์ ์๋ค.
๋ฐฐ์นญ์ ๋๋ก์ฐ์ฝ์ ์ ์ฝํ ์ ์๋ ๊ธฐ๋ฒ์ด๋ค.
- ์คํํฑ ๋ฐฐ์นญ : ์๋ฅผ ๋ค์ด ์์ง์ด์ง ์๋ ๋ฐฐ๊ฒฝ ์ค๋ธ์ ํธ๋ค์ ์คํํฑ๋ฐฐ์นญ์ผ๋ก ์ฒ๋ฆฌ
ํ๋ ์ ๋๋ฒ๊ฑฐ : ๋๋ก์ฐ์ฝ์ ๋๋ฒ๊น
ํ ์ ์๋ ๊ธฐ๋ฅ์ด๋ค.
๋์ ๋ผ์ดํธ๋ ์ฑ๋ฅ์ํฅ์ ๋ง์ด ๋ผ์น๋ค๋๊ฒ์ ์ผ๋ํ์.
์คํํฑ ๋ผ์ดํธ, ๋ผ์ดํธ๋งต,๋ผ์ดํธํ๋ก๋ธ๋ฅผ ๊ถ์ฅํ๋ค.
๋ผ์ดํธ๋งต -> ๋ผ์ดํธ์ ๊ฒฐ๊ณผ๋ฌผ์ ํ
์ค์ณ๋ก ์ ์ฅํด๋๋๊ฒ์ด๋ค.
์ค์๊ฐ ์ฐ์ฐ์ด ๋ค์ด๊ฐ๋๊ฒ์ด ์๋์ด์ ํจ์จ์ ์ด๋ค. -> ์ ์ ์ธ ์ค๋ธ์ ํธ์๊ฒ๋ง ์ฌ์ฉํ ์์์.
๋ผ์ดํธํ๋ฃจ๋ธ -> ๋์ ์ธ ์ค๋ธ์ ํธ์ ๋ผ์ดํธ๋ฅผ ํํํ ๋ ์ฌ์ฉํ๋ค.
์ด๋ค ๊ณต๊ฐ์ ๋ผ์ดํธ ๊ฒฐ๊ณผ๋ฌผ์ ์ ์ฅํด๋๊ณ ์ค๋ธ์ ํธ๊ฐ ์ง๋๊ฐ๋ฉด ์ค๋ธ์ ํธ๊ฐ ๋ผ์ดํธํ๋ฃจ๋ธ์ ์ํฅ์ ๋ฐ๋๋ค. ์ฌ์ธํ ํํ์ ๋ถ๊ฐ๋ฅํ๊ฒ ์ง๋ง, ๋น์ ๋ณํ๋ฅผ ํํํ ์ ์๋ค.
์ฌ๋งํด์ ๋๋๊ฒ์ข๋ค ๋๋ก์ฐ์ฝ๊ณผ GPU ์ฑ๋ฅ์ ๋ง์ด ๋จน๋๋ค.
LOD : ๊ฐ๊นํ ์๋๊ฒ์ ์์ธํ, ๋ฉ๋ฆฌ์๋ ๊ฒ์ ๋ญ๊ทธ๋ฌ์ ธ ํํํ๋ ๊ธฐ๋ฒ
์คํด๋ฃจ์ ผ ์ปฌ๋ง : ์๋ณด์ด๋ ์ค๋ธ์ ํธ๋ ๊ทธ๋ฆฌ์ง ์๋ ๊ฒ์ด๋ค. (๋๋๋ง์ ๊ฑฐ์น์ง ์๋๊ฒ)
๋ฌธ์ ๋, ๊ดํํ ์ผ์ธ์์๋ ์ด๋ฐ ๊ฒฝ์ฐ๋ ๋ง์ง ์๋ค. ๊ทธ๋ผ, ๋นํจ์จ์ ์ผ์๋์๋ค. ๊ฐ๋ ค์ง๊ฑด์๋๋ฐ ๊ดํ ์ฐ์ฐํ๋ค๊ณ ์์ข์์๋์์ผ๋ ์ํฉ์ ๋ฐ๋ผ ์ ์ฐ์.
์ค์ ์นด๋ฉ๋ผ๊ฐ ์ปฌ๋ง์ฐ์ฐ์ ํ๋๋ฐ, ์นด๋ฉ๋ผ๋ฅผ ์ฌ๋ฌ๊ฐ ๋๋ฉด ์ปด๋ง์ฐ์ฐ์ด ์ค๋ณต์ผ๋ก ์ผ์ด๋๋ค.(์๋ค๋จธ์ ์นด๋ฉ๋ผ๋ ํด๋นํ์ง ์๋๋ค.)
์ด๊ฑธ ํธ์ถํ๋ ์๊ฐ ๋ณต์ฌ๋ณธ์ด ๋ง๋ค์ด์ง๋ค.
๋นํ๊ธฐ๊ฐ 2๊ฐ๊ฐ ์๊ณ ๊ฐ์ mat์ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ๊ฐ์ ํ์.
๊ทผ๋ฐ ๋ง์ฝ ๋นํ๊ธฐ 1์์ Render.mat-์ ํธ์ถํ๋ฉด ๋ณต์ฌ๊ฐ ์ผ์ด๋๊ณ ๋ ๋นํ๊ธฐ๊ฐ ๊ฐ์ amt๋ฅผ ์ฌ์ฉํ์ง ์๊ฒ๋๋ค. ์ฆ ๋ฐฐ์นญ์ด ๊นจ์ ธ๋ฒ๋ฆฐ๋ค.
๋ง์ฝ ๋ณต์ฌ๋ณธ ์๋ง๋ค์ด์ง๊ฒ ํ๊ณ ์ถ์ผ๋ฉด Renderer.sharedMaterial ๋ฅผ ์ฌ์ฉํ๋ฉด๋๋ค.
๋ผ์ดํธ ํ๋ฃจ๋ธ๋ ๋น์ฉ์ด ์ธ๋ค ์๋ ์ซ์๋ง ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ซ์ 9๊ฐ๋ง ์ ์ฅ๋์ด์ ๊ฐ๋ณ๋ค.
ํ์ง๋ง ๋ฆฌํ๋ ์
ํ๋ฃจ๋ธ๋ 6๋ฉด์ ํ
์ค์ณ๊ฐ ์ ์ฅ๋๋ค.
์ปจ์
์ ๋น์ทํ์ง๋ง ์ ์ฅ๋๋ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ค๋ฅด๊ธฐ๋๋ฌธ์ ์ฑ๋ฅ ์ฐจ์ด๊ฐ ๋ง์ด๋๋ค.
๋๋ก์ฐ์ฝ ๋ฐฐ์นญ์ ์บ๋ฒ์ค ๋จ์๋ก ์ด๋ฃจ์ด์ง๋ค.
์บ๋ฒ์ค ์์์ ํ๋์ ๋ฒํผ์ด ๋ณํ๊ฒ๋๋ฉด, ์บ๋ฒ์ค ์์ ์๋ ๋ค๋ฅธ์ ๋ค๋ ํด๋ฆฌ๊ณค์ ๊ตฌ์ฑํ๊ธฐ์ํด์ ๋ค ๋ฐ๊ฟ์ค์ผ ํ๋ค.
๊ทธ๋์ ์บ๋ฒ์ค ์์ ๋์ ์ธ ์์ด๋ค ์ ์ ์ธ ์์ด๋ค ์์ผ๋ฉด ๋นํจ์จ์ ์ด๊ณ , ๋์ ์ธ ๋ถ๋ถ ๋ชจ์๋์ ์บ๋ฒ์ค/์ ์ ์ธ ๋ถ๋ถ ๋ชจ์๋์ ์บ๋ฒ์ค ๋๋ ์ผ ์ฑ๋ฅ์ ์ธ ๋ถ๋ถ์์ ์ข๋ค.
์ฌ๋ฌ๊ฐ์ ์บ๋ฒ์ค๋ฅผ ๋๋๋๊ฒ ํจ์จ์ ์ด๋ค.
๋ณด์ด์ง์๋ UI ์์๋ ๊บผ์ฃผ๋๊ฒ ์ข๋ค.
์บ๋ฒ์ค ์์ญ ๋ฐ์ ๋ฒํผ์ด ์๋ค๊ฐ ํ๋ฉด์์ผ๋ก ๋ค์ด๊ฐ๋ค ๋์๋ค ํ๋๊ฑฐ๋ฉด ์บ๋ฒ์ค ๋ฐ์ ์์ด๋ ์ฐ์ฐ์ด ๋์ด์ ์์ฐ๋ฉด ๊บผ์ค์ผ์ข๋ค.
์ธํฐ๋ ์
์ด ์์ผ์ด๋๋ ์์๋ค์ ๋ ์ด์บ์คํธ๋ ๊บผ์ค๋ผ.
์บ๋ฒ์ค์์ ๋ง์ ์์๊ฐ ์๋ ์ํ์์ ํ๋์ ๋ฒํผ๋ง ๋ ์ด๋ฅผ ์ฐ๋ค๊ณ ๊ฐ์ ํ๋ฉด ์บ๋ฒ์ค ๋ ์ด๋ฅผ ๊บผ์ฃผ๊ณ ๋ฒํผ์๋ง ๋ฐ์ด์บ์คํฐ๋ฅผ ๋ถ์ฌ์ค์ผ ์ฑ๋ฅ์ ์ผ๋ก ํจ์จ์ ์ด๋ค.
๋ ์ด์บ์คํธ ํ๊ฐฏ๋ ์์ฐ๋ฉด ๊บผ์ค์ผํ๋ค.
์๋ ๋์ ์ผ๋ก ์ฐ์ฐํ๊ณ ์์ด์ ์์ฐ๋๊ฒ ์ข๋ค.
์คํธ๋ ์ค๋ฅผ ๊ดํ ๋ฌ์ ๋ฉ๋ชจ๋ฆฌ ๋ปฅํ๊ธฐ ํ ํ์๊ฐ ์๋ค.
์๋ณธ์ด ๋ญ๋ ์๊ด์์ด ์์ถ ๋ค์ํ๊ธฐ๋๋ฌธ์ ๊ทธ๋ฅ wav ํ์ผ ์ฐ๋๊ฒ ์ ์ผ ์์ค์ด ์ ์ํ
๋๊น ์ด๊ฑฐ ์ฐ๋๊ฒ ์ข๋ค
Compression FOrmat(์์ถํฌ๋งท) ์ ๋ํดํธ๋ก Vorbis๋ฅผ ์ฐ๋ฉด ๋๋ค.
์งง์์ฌ์ด๋๊ฐ์ ๊ฒฝ์ฐ๋ ADPCM ์ฐ๋ฉด๋๋ค.
๋ก๋ํ์
Decom- Load : ์์ถ์ ๋ค ํ์ด์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค. (๋นํจ์จ์ ) ์์์ฌ์ด๋๋ง ์ ์ฉ ํ์.
Compre -Me : ์์ถํ ์ํ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ๋ฆฐ๋ค. ์ค๊ฐํฌ๊ธฐ์ ์ฌ์ด๋๋ฅผ ์๋ก ์ ์ฉํ์
Streaming : ๋ฐฐ๊ฒฝ์(์ฉ๋์ด ํฐ ์์ด๋ค)์ Streaming์ผ๋ก ํ๋ฉด๋๋ค.
๋ณผ๋ฅจ 0 ์ด์ด๋ ์ฐ์ฐ์ฒ๋ฆฌ๋๋ค. ๊ทธ๋ฅ ๋ฉ๋ชจ๋ฆฌ์์ ๋ ๋ ค๋ฒ๋ฆฌ์
ํด๋จธ๋
ธ์ด๋๋ ์ ๋ค๋ฆญ๋ณด๋ค 30%~50% ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
๋ฉ๋ชจ๋ฆฌ ํจ์จ์ ์ผ๋ก๋ ์ ๋ค๋ฆญ์ด ์ข๊ธดํ๋ค.
์ถฉ๋์ฒ๋ฆฌํ๊ธฐ์ํ ๋ด์ฉ๋ค์ ๋ฐ๋ฅ์ด๋ ๋ฒฝ์ ๋ก๋ฉํ์์ ๋ฏธ๋ฆฌ ๊ตฌ์๋๋ ๊ธฐ๋ฅ์ด๋ค. ํจ์จ์ ์ด๋ค.
-> ์ฐ์ฐ๋น์ฉ์ ์ค์ผ ์ ์๋ค.
๋งค์์ฝ๋ผ์ด๋๋ ์ต์ ํํ ์์๋ ์ฌ์ง๋ค์ด ์ฌ๋ผ์ง๋ค.




