Unity/지식
[Unity] 좌표계 에 대해 알아보자
좌표계 (Coordinate System) 우선 좌표계란 특정 차원의 공간에서 특정한 위치를 나타내기 위해 사용하는 방식이다 이러한 좌표계에는 '축' 이 존재하고 해당 선의 수직선 상에서 쉽게 특정 위치를 찾아낼 수 있다. x, y, z 총 세 개의 축으로 3차원 공간을 표현해낼 수 있으며 나머지 한 축을 뺀 x, y 축으로 좌표계를 표현한 것을 2차원 공간이라고 한다. 쉽게 2D, 3D 게임을 생각하면 이해하기 쉬울 것이다 게임들을 플레이 해보면 알 수 있듯이, 게임마다 각각 좌표를 표현하는 방식들이 제각각이다, 상하좌우로만 움직이는 게임이나, 또는 전후좌우로 움직임이 제한되는 경우가 있으니 참고해두길 바란다. 왼손 좌표계, 오른손 좌표계 좌표계는 크게 두갈래로 나뉜다, 바로 왼손 좌표계와 오른손 좌표..
[Unity] 메인 루틴과 서브루틴, 코루틴(Co-routine) 에 대해 알아보자
메인 루틴과 서브루틴 먼저 코루틴을 알아보기 전에 메인 루틴과 서브루틴이 무엇인지 간략하게 소개하고 넘어 가도록 하겠다. 우선 메인루틴(Main-routine)은 우리가 익히 잘 알고 있는 유니티 내부의 Start, Update 함수 등을 지칭한다 다음으로 서브루틴(Sub-routine)은 어떠한 작업을 처리하기 위해 사용자가 직접 만든 함수 등을 서브 루틴이라고 부른다 보통, 서브루틴이 메인 루틴에 종속된 상태로 호출받는 입장으로, 서브루틴에서 반환 값이 있다면 그 값을 이용하는 방식이다. 코 루틴(Co-routine) 코 루틴은 호출한 메인 루트와 함께 실행되는 방식이다, 여기서 Co-routine의 'Co'는 '동등한', '협력관계'의 의미이기도 한다 코 루틴의 선언 방식은 아래와 같다 using ..
[Unity] 쿼터니언과 짐벌락 현상에 대해 알아보자
쿼터니언(Quaternion) 이란? 게임 오브젝트(GameObject)에 필수적으로 존재하는 Transform 컴포넌트에는 각각 위치(position), 회전(rotation), 크기(scale)를 구성하는 속성들이 존재한다. 여기서 우리가 유심히 봐야 할 점은 위치와 크기는 벡터(vector) 형식의 값을 가지는 반면 회전은 그 값을 표현하는 방식이 다르다 바로, 쿼터니언(Quaternion) 형식의 값을 가진다는 사실이다. 하지만 문제점은 쿼터니언 형식의 값은 사람이 한눈에 봐도 쉽게 알아볼수가 없는데 이러한 문제점을 해결하여 나온것이 바로 오일러 각도(Euler Angles)다. 오일러 각도는 총 3개의 각으로 직관적으로 "사람이 읽을 수 있는" 형식을 갖으며 180도 이상의 회전을 통해 한 방향..
[Unity] Attribute 에 대해 알아보자
Attribute 속성이란 유니티는 개발자가 작업을 좀 더 직관적이고 편하게 할 수 있도록 Unity 전용 Attribute 속성을 제공해주고 있다. Attibute는 유니티뿐만 아닌 .NET 라이브러리에도 전용 속성이 정의되어있다 오늘은 그중 몇 가지 유용한 Unity와 .NET 어트리뷰트를 알아볼 것이다. 우선 아래 표부터 살펴보자 이름 속성 이점 CreateAssetMenu 에셋 -> 메뉴 생성가능 주로 ScriptableObject 이용시 사용 ContextMenu 컴포넌트 -> 함수 실행 Debug, 동작 테스트에 활용 RequireComponent 컴포넌트 누락 방지 컴포넌트 설정 오류 방지 ExecuteInEditMode 스크립트 -> 에디터에서 실행 가능 에디터 모드에서도 Update Hi..
[Unity] 라이프 사이클(Life Cycle) 에 대해 알아보자
유니티의 생명주기 유니티에서는 사용자가 직접 호출하지 않아도 자동으로 호출되는 함수들이 있다 이것을 유니티 라이프 사이클(Life Cycle)이라고 부른다 이러한 라이프 사이클의 함수 호출 주기는 사용자 정의가 불가능하기 때문에 호출 주기에 대해 자세하게 알고 있다면 유니티를 다루는 데 있어 한 층 수월해질 것이다. 먼저 아래는 전체적인 유니티 공식 홈페이지에 나오는 스크립트 라이프 사이클 플로우 차트이다. 한눈에 봐도 뭔가가 많아 보이지만 모든 함수를 익혀두진 않아도 우리가 중요하게 여겨야 하는 함수들이 있다. 앞서 소개할 함수들은 자주 사용되는 함수들이니 집중해서 봐줬으면 한다 Reset : 에디터 모드에서 오브젝트에 스크립트가 붙여졌을 때 호출되며 기본값을 지정하기 위해 사용됨 Awake : 스크립..
[Unity] Delta Time 에 대해 알아보자
FPS(Frame Per Second)와 Delta Time에 관해 이번 글에서는 유니티 게임 엔진에서 자주 사용되는 Delta Time에 관해 알아보는 시간을 가져보자 먼저 유니티는 Update라는 함수에서 매 프래임(Frame) 마다 호출이 되는데 여기서 Delta Time은 이전 프레임과 현재 프래임 사이의 시간 차이를 의미한다 여기서 FPS의 개념을 이해할 필요가 있다 FPS(Frame Per Second)는 시스템의 초당 처리하는 프래임수의 개수이다 이러한 FPS는 처리하는 시스템에 따라 또는 컴퓨터 사양에 따라 달라질수가 있는데 간단하게 예를 들어 1초당 10 프레임을 처리하는 저사양 컴퓨터 A와 1초당 100프레임을 처리할 수 있는 고사양 컴퓨터 B가 있다고 가정해보고 1프레임당 2px씩 총..