C#์์ ๊ตฌ์กฐ์ฒด๋ ๊ฐ ํ์(value type)์ด๊ธฐ์, ์คํ(stack)์ ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์๋ ๋ณ์ ์ฒด๊ณ๋ค. ๋ ํผ๋ฐ์ค ํ์(reference type)์ ์ค์ ๋ฐ์ดํฐ๋ ํ(Heap) ์์ญ์ ์กด์ฌํ๊ณ , ์คํ(Stack)์๋ ํด๋น ๋ฐ์ดํฐ๋ก ๊ฐ๋ ์ฃผ์๋ฅผ ๋ด๊ณ ์๋ ๋ณ์ ์ฒด๊ณ๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก Vector3, Vector2๋ ๊ตฌ์กฐ์ฒด์ด๊ธฐ์ ์ง์ญ ๋ณ์๋ก ์์ฑํ ๊ฒฝ์ฐ, ๋ก์ง์ด ๋๋๋ ๋ธ๋ก(block)์ ๋ง๋๊ฒ ๋๋ฉด ์๋ ๋ฉ๋ชจ๋ฆฌ ๋ฐ๋ฉ ์ฒ๋ฆฌ๊ฐ ๋๋ค.
void Update()
{
Vector3 vec3 = new Vector3();
Vector2 vec2 = new Vector2();
} // ๋๋๋ ๋ธ๋ก์ ๋ง๋ฌ์ผ๋ฏ๋ก, vec3, vec2 ๋ฉ๋ชจ๋ฆฌ ๋ฐ๋ฉ
C#์ ํ ํ ๋น์ ํ๋ ํด๋์ค ๊ฐ์ฒด ์์ฑ๊ณผ ํท๊ฐ๋ฆฌ๊ฒ ์ ์ด๋ฐ new ๋ฌธ๋ฒ์ ์ง์ํ๋๋ก ๋ง๋ค์ด๋จ์๊น? ๊ตฌ๊ธ์ ๊ฒ์ํด๋ณด๋ฉฐ ์ฐพ์ ๋ณด๋, ํต์ผ์ฑ๊ณผ ์์ฑ์ ํธ์ถ์ ์ํด์๋ผ๊ณ ํ๋ค. ๊ตฌ์กฐ์ฒด ๋ํ ํด๋์ค์ฒ๋ผ ์์ฑ์๋ก ์ด๊ธฐํ๋ฅผ ํ ์ ์๊ฒ ๋ง๋ค๊ณ , ๊ทธ ๊ณผ์ ์์ ํด๋์ค์ ํต์ผ์ฑ์ ์งํค๋ ค๊ณ ์ด๋ ๊ฒ ํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
๊ทผ๋ฐ ๋ง์ ๊ณต๋ถํ๋ค ๋ณด๋, ๋ค์ ๋ด์ฉ์ด ๊ถ๊ธํด์ก๋ค. ํด๋์ค ๋ด๋ถ์ ๋ฉค๋ฒ ๋ณ์๋ก ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ธํ๋ฉด ์ด๋์ ์์ฑ๋ ๊น?
public class Test : MonoBehaviour
{
Vector2 globalVec = new Vector2(); // ๋ฉค๋ฒ ๋ณ์๋ก ์ ์ธ
void Start()
{
...
}
void Update()
{
...
}
}
๋ฉค๋ฒ ๋ณ์๋ ์ ์ญ ๋ณ์์ ์ผ์ข
(์ธ์คํด์ค ๋ณ์)์ผ๋ก ์๊ณ ์๋ค. ๊ทธ๋ ๋ค๋ฉด, Data ์์ญ์ ์์ฑ๋์ง ์์๊น?๋ ์๊ฐ์ด ๋ค๊ธด ํ๋๋ฐ, ํ ์ ํํ๋ ๋ชจ๋ฅด๊ฒ ๋ค.
๋ฉ์ง ๋ถ๊ป์ ๋๊ธ๋ก ์คํ ์์ญ์ ์์ฑ๋๋ค๊ณ ์๋ ค์ฃผ์ จ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค. :)