Game Development(20)
-
[Unity, C#] 구조체(struct)는 왜 new 문법을 지원할까?
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 문법을..
2022.01.13 -
[Unity] 2D 게임 오브젝트가 바라보는 방향 전환하기
1. Sprite Renderer의 Flip 속성 이용 Flip 속성을 통해 X축, Y축, 혹은 둘 다 반전에 대한 축으로 설정할 수 있지만, 렌더링만 영향을 받는 단점이 있다. 다음은 2D Capsule 게임 오브젝트를 하나 생성하고, 하위 자식으로 2D Circle 게임 오브젝트를 생성해서 넣어놨다. 캡슐은 상하좌우 모두 반전에 대해 대칭이므로 구분을 할 수 있게, 다른 모양으로 Sprite를 바꿔놨다. 유니티를 통해 위와 같이 실험을 진행했다. 보면 알겠지만, 2D Capsule 게임 오브젝트의 렌더링 부분만 영향을 미친다. 하위 자식으로 생성했던 2D Circle 게임 오브젝트는 아무런 영향이 없는 걸 볼 수 있다. 따라서, Sprite Renderer의 Flip 기능을 이용할 땐 위와 같은..
2022.01.13