๐ Tech
![[Unreal] ๋ฌผ๋ฆฌ ์์ง](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeLxPhB%2FbtsEQKYmzGJ%2FgyCaLO58MikxNQzVbVAk1K%2Fimg.png)
[Unreal] ๋ฌผ๋ฆฌ ์์ง
๋ฌผ๋ฆฌ ์์ง ์ด๋, ๋ํ, ๋ฐ์ฌ, ์ํธ ์์ฉ, ๊ด์ฑ, ๋ง์ฐฐ ๋ฑ ๋ฌผ๋ฆฌ๋ฅผ ๊ฒ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ํ๋ํ๋ ๊ฐ๋ฐํ๊ธฐ์๋ ๊ฐ๋ฐ ๊ธฐ๊ฐ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฐ๋ค. ๊ทธ๋์ ๋ฌผ๋ฆฌ ์์ง์ด๋ผ๋ ๋ณ๋์ ๊ฐ์ฒด ์ญํ ๊ณ์ฐ ๋ชจ๋์ ํ์ฉํ๋ค. ๋ฌผ๋ฆฌ ์์ง์ ์ค์ ์ญํ์ ์ต๋ํ ์ ํํ๊ฒ ์ฌํํ๋ ๊ฒ์ ์ถ๊ตฌํ๋ค. ๋ฌผ๋ฆฌ ์์ง์ ์ฑ๋ฅ๊ณผ ๋ฅ๋ ฅ์ ๊ต์ฅํ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๊ณ ์์ง๋ง, ๋ฏธํกํ ๋ถ๋ถ์ด ์์ง ์กด์ฌํ๋ค. ์ฌํ์ฑ: ๋ช ๋ฒ์ ์คํํด๋ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ณ ์ ํ ๋๋ ๋ฌผ๋ฆฌ ์์ง์ด ์ ํฉํ์ง ์๋ค. ์ ์ด์ฑ: ํผ์ง์ค ์๋ฎฌ๋ ์ด์ ์ ํ๊ณผ ํ ํฌ๋ฅผ ์ฌ์ฉํด ๊ฐ์ฒด๋ฅผ ์์ง์ด๊ธฐ ๋๋ฌธ์ ์ด๋ค ๊ฒฐ๊ณผ๊ฐ ๋์ฌ์ง ์์ธกํ๊ธฐ๊ฐ ํ๋ค๋ค. ์ฆ, ์ ์ด์ฑ์ด ๊ต์ฅํ ๋ฎ๋ค. ์ ๋ฐํ ์๋ฎฌ๋ ์ด์ : ์ ๋ฐํ ์๋ฎฌ๋ ์ด์ ์ด ํ์ํ๋ค๋ฉด ์ง์ ๊ตฌํํ๋ ๊ฒ์ด ์ข๋ค. ์ด์ฒ๋ผ ๋ฌผ๋ฆฌ ์์ง์ CPU ์ฒ๋ฆฌ ๋ฅ๋ ฅ๊ณผ ์์ ์ ๋ฐ๋ผ ..
![[Unreal] ์ฝ๋ฆฌ์ ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDykyi%2FbtsELrZQKF2%2FXOshZsIXRGeq0EaWBGxR7K%2Fimg.png)
[Unreal] ์ฝ๋ฆฌ์
1. ์ฝ๋ฆฌ์ ๋ฐ์ 1) ๊ฐ์ฒด ๋ฐ์ ์ง์ฐ๊ฐ๋ฅผ ๋ฒฝ์ผ๋ก ๋์ง๋ค๋ฉด ์ง์ฐ๊ฐ๋ ๋ฒฝ๊ณผ ์ถฉ๋ํด์ ํ๊ฒจ ๋์จ๋ค. ๊ทธ๋ฐ๋ฐ ๊ฒ์ ์ธ๊ณ์์๋ ๋ชจ๋ ๋ฌผ์ฒด๊ฐ ์ด๋ฌํ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง๋ฉด ์ ๋๋ค. ์๋ํ๋ฉด ๋ฌผ์ฒด์ ์๋ก ์ถฉ๋ํ์ง ์์ ์๋ ์๊ณ ๋ค์ํ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ด์ฒ๋ผ ๊ฒ์ ๊ฐ๋ฐ์์๋ ๋ฌผ์ฒด๊ฐ ์ถฉ๋ํ ๋ ์ด๋ป๊ฒ ๋ฐ์ํ ๊ฒ์ธ์ง๋ฅผ ์ค์ ํด์ผ ํ๋ค. ์ธ๋ฆฌ์ผ์์๋ ์ด๋ฌํ ์ค์ ์ ๊ฐ์ฒด ๋ฐ์์ด๋ผ ๋ถ๋ฅด๋ฉฐ 3๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค. ๋ธ๋ก(Block) ์๋ก๊ฐ ์๋ก๋ฅผ ํ๊ณ ๋ค์ง ์๊ฒ ํ๋ค. ๋ ๋์์ด ์๋ก ๋ํ๋ ๋ฐฉ์์ด ๋ชจ๋ ๋ธ๋ก์ด์ด์ผ ํ๋ค. ์ค๋ฒ๋ฉ(Overlap) ์ฝ๋ผ์ด๋๋ผ๋ฆฌ์ ์ค๋ณต์ ํ์ฉํ์ง๋ง ์ํ๋ฅผ ๊ฒ์ถํด์ ํ์ฉํ ์ ์๊ฒ ํ๋ค. ๋ ๋์์ด ์๋ก ๋ํ๋ ๋ฐฉ์์ด ๋ชจ๋ ์ค๋ฒ๋ฉ์ด์ด์ผ ํ๋ค. ๋ฌด์(Ignore) ์๋ก๋ฅผ ์์ ํ ๋ฌด์ํ๋ค. ๋ธ๋ก๊ณผ ์ค๋ฒ..
![[Unreal] ๋ธ๋ฃจํ๋ฆฐํธ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbc8WwR%2FbtsEOUtDVLD%2FKrWz4iDVegO9V9yuGtK4U1%2Fimg.png)
[Unreal] ๋ธ๋ฃจํ๋ฆฐํธ
1. ๋ธ๋ฃจํ๋ฆฐํธ์ C++์ธ๋ฆฌ์ผ ์์ง์์ ๊ฒ์ ๊ธฐ๋ฅ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ธ๋ฃจํ๋ฆฐํธ์ C++์ด ์๋ค.๋ธ๋ฃจํ๋ฆฐํธ๋ ๋์ ๋ณด์ด๋ ๋ ธ๋์ ๋ ธ๋๋ฅผ ๋ณด๋ฉฐ ๋์ ๋ณด์ด๋ ํ๋ฆ์ ๋ง๋ค์ด๋ด๋ ๋น์ฃผ์ผ ์คํฌ๋ฆฝํธ์ด๋ค.C++์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ํ์ดํ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด์ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ธ๋ฃจํ๋ฆฐํธ๋ฅผ ๋จ๋ ์ผ๋ก ์ฌ์ฉํ์ฌ ๊ฒ์์ ๋ง๋๋ ๊ฒ๋ ๊ฐ๋ฅํ์ง๋ง, ํ๋ก๊ทธ๋๋จธ๊ฐ C++๋ก ๋ฒ ์ด์ค๊ฐ ๋๋ ๊ฒ์ ๊ธฐ๋ฅ์ ๋ง๋ค๊ณ , ๋์์ด๋๊ฐ ๋ธ๋ฃจํ๋ฆฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์์ ์ฌ๋ฏธ๋ฅผ ์ํ ๊ธฐ๋ฅ๋ค์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํจ๊ป ์ฌ์ฉํ ๋ ์๋์ง๋ฅผ ๋ธ๋ค. 1) ๋น์ฃผ์ผ ์ธ์ด๋ธ๋ฃจํ๋ฆฐํธ๋ ๋น์ฃผ์ผ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค. ๋น์ฃผ์ผ ํ๋ก๊ทธ๋๋ฐ์ ์๊ฐ์ ์ผ๋ก ๋ธ๋ก์ ์์ผ๋ฉฐ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์๊ฒ ํด์ฃผ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค. 2) ์ข ๋ฅ๋ ๋ฒจ ๋ธ๋ฃจํ๋ฆฐํธ: ๋ ๋ฒจ์ ํ๋์ฉ ํ ๋น๋์ด ์๋..
![[Unreal] ๋ ๋ฒจ, ๋ ์ด์ด](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRZliO%2FbtsEQbPkUwO%2F3gARPPuijmBr6d6e4IdFB1%2Fimg.png)
[Unreal] ๋ ๋ฒจ, ๋ ์ด์ด
1. ๋ ๋ฒจ ๊ฒ์์ ํ๋ ์ดํ ๋ ๋ณด๊ณ ๋ง์ง ์ ์๋ ๋ชจ๋ ์ค๋ธ์ ํธ๋ ๋ ๋ฒจ ์์ ๋ค์ด๊ฐ ์๋ค. ์ฆ, ๋ ๋ฒจ์ด๋ ์คํํฑ ๋ฉ์, ๋ณผ๋ฅจ, ๋ผ์ดํธ, ๋ธ๋ฃจํ๋ฆฐํธ ๋ฑ์ผ๋ก ์ด๋ฃจ์ด์ง ๊ฒ์ผ๋ก, ์ด ๋ชจ๋ ๊ฒ์ด ์ด์ฐ๋ฌ์ ธ์ ๊ฒ์์ ํ๋ ์ดํ๋ ํ๋ ์ด์ด์๊ฒ ๋ชจ๋ ๊ฒฝํ์ ์ ์ฌํด ์ค๋ค. ๋ ๋ฒจ ๊ท๋ชจ๋ ๊ฑฐ๋ ์งํฅ ๊ธฐ๋ฐ ์๋์์๋ถํฐ ์กํฐ ๋ช ๊ฐ๋ก ์ด๋ฃจ์ด์ง ๋งค์ฐ ์์ ๋ ๋ฒจ๊น์ง ๋ค์ํ๋ค. 1) ๋ ๋ฒจ ์คํธ๋ฆฌ๋ฐ ์ธ๋ฆฌ์ผ์๋ ๊ฒ์ ํ๋ ์ด ์ค์ ์์ง ์ฝ์ด ๋ค์ด์ง ์์ ์๋ธ ๋ ๋ฒจ์ ์ดํ์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ฝ์ด ๋ค์ด๋ ๋ ๋ฒจ ์คํธ๋ฆฌ๋ฐ์ด๋ผ๋ ๊ธฐ๋ฅ์ด ์๋ค. ๋ฐ๋ผ์ ๋์ ๋งต์ ์๋ธ ๋ ๋ฒจ๋ก ๋ถํ ํด์ ์กฐ๊ธ์ฉ ์ฝ์ด ๋ค์ด๋ฉฐ ๊ฒ์ ํ๋ ์ด๋ฅผ ์งํํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. ์ผ๋ฐ์ ์ธ ๊ฒ์์์ ์ฅ์์ ์์ฒญ ๋๋ฆฌ๊ฒ ์ฌ๋ผ๊ฐ๊ฑฐ๋ ์ด๋ฆฌ์ง ์๋ ์ ํฐ๋ฅผ ๋ณธ ์ ์ด ์์ ๊ฒ์ด๋ค. ๋ชจ๋ ๋ก๋๋ฅผ ์ํ ์๊ฐ์ ๋ฒ..
![[Unreal] ์ ๋ํฐ ๊ฐ๋ฐ์๋ฅผ ์ํ ์ธ๋ฆฌ์ผ ์์ง](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrNMcT%2FbtsjnG90ory%2FCe8PVPh0k1kkuOqn6ci37K%2Fimg.jpg)
[Unreal] ์ ๋ํฐ ๊ฐ๋ฐ์๋ฅผ ์ํ ์ธ๋ฆฌ์ผ ์์ง
์ ๋ํฐ ๊ฐ๋ฐ์๋ฅผ ์ํ ์ธ๋ฆฌ์ผ ์์ง ๊ฒ์ ๊ฐ๋ฐ์ ์์ฒด ์์ง์ ์ฌ์ฉํ๊ธฐ๋ ํ์ง๋ง ๋๋ถ๋ถ ์ ๋ํฐ ํน์ ์ธ๋ฆฌ์ผ ์์ง์ ์ ํํ๊ณ ์๋ค. ๋ ์์ง์ด ํ์ฉ๋๋ ์ด์ ๋ ์กฐ๊ธ์ฉ ๋ค๋ฅด๋ค. ์ ๋ํฐ๋ ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์๋ค๋ ๊ฐ์ ์ด ์๋ค. ์์ง ์ฌ์ฉ๋ฒ์ด ๊ฐํธํ๊ณ ์ง๊ด์ ์ด๋ผ ๊ฐ๋จํ ํ๋ก๊ทธ๋๋ฐ ์ง์์ผ๋ก ์ฌ๋งํ ๊ฒ์์ ๊ฐ๋ฐํ๋๋ฐ ๋ฌธ์ ๊ฐ ์๋ค. ์ด๋ฌํ ์ฅ์ ์ผ๋ก ์ ๋ํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์์ ๋น์จ์ด ๊พธ์คํ ์ฆ๊ฐํ๊ณ ์๋ค. ๋ํ ์ธ๋ถ์์ ์ ์ํ ๋ฆฌ์์ค ์ ์ฉ์ด ๋นจ๋ผ ๊ฐ๋ฐ ๊ธฐ๊ฐ์ ์ค์ผ ์ ์๋ค. ์ธ๋ฆฌ์ผ์ ๊ฐ์ ์ ๊ทธ๋ํฝ ํ๋ฆฌํฐ์ด๋ค. ๊ทธ๋์ ๊ทธ๋ํฝ ์ฑ๋ฅ์ ๋ฐํ์ผ๋ก ์จ๋ผ์ธ, ์ฝ์ ๊ฒ์์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค. ํ์ง๋ง ํด๋๊ธฐ๊ธฐ์ ๋ฐ์ ์ผ๋ก ํ๋ฆฌํฐ๊ฐ ํฅ์๋์ด ๋ชจ๋ฐ์ผ ๊ฒ์ ์์ฅ์์๋ ๋๊ฐ์ ๋๋ฌ๋ด๊ธฐ ์์ํ๋ค. ๋ํ ๋ฆฌ์ผ ํ์ ๋ ๋๋ง ๊ธฐ๋ฅ์ผ๋ก ๋ฐ์ด๋ ํจ์จ์ ์๋ํ๋ค..
[Unity] ์ฝ๋ ๋ด ํ ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ
์ฝ๋ ๋ด ํ ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ๋ ํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ํญ์ ์ ๊ฒฝ ์จ์ผ ๋๋ ์ค์ํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด๋ค. ์ ๋ํฐ์์ ํ ๋ณ์๊ฐ ์์ฑ๋ ๋ ์ฌ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ์ง ์๋ค๋ฉด GC์ ์ํํ๋ค. ํ์ง๋ง GC์ ๊ฝค๋ ๋ฌด๊ฑฐ์ด ์์ ์ด๊ธฐ ๋๋ฌธ์ ์ด ์๊ฐ ํ๋ ์ ๋๋กญ์ด ๋ฐ์ํ๋ค. ์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์ต๊ทผ์๋ Inscremental GC ๊ธฐ๋ฅ์ด ์ ๋ฐ์ดํธ๋๊ธด ํ์์ง๋ง, ๊ทธ๋๋ GC์ ๋์์ด ๋๋ ํ ํ ๋น์ ์ต๋ํ ๋ง๋ค์ง ์๋ ๊ฒ์ด ์ข๋ค. 1) ์์ฃผ ์ฌ์ฉ๋๋ ์ฐธ์กฐ ๋ณ์๋ ์บ์ฑํ๊ธฐ private Button btn; void Start() { btn = GetComponent(); } public void MyMethod() { //Button btn = GetComponent(); // ํจ์ ํธ์ถ์ ๋ง๋ค ํ ..