728x90
728x90
3D 물리 엔진의 그래픽 연산 프로세스 3D 렌더링 엔진에서 Cube는 어떠한 그래픽 연산 절차를 거쳐 그려질까? 유니티 엔진은 기본적으로 그래픽 연산 방식은 DirectX를, Camera에는 OpenGL을 탑재하고 있다. 두 라이브러리를 공용으로 사용하는 이유는 각 라이브러리마다 특성을 바탕으로 멀티플랫폼에 효율적으로 대응하기 위함이다. 자세한 내용은 Shader를 공부하다 보면 확인할 수 있는데, 플랫폼 마다 그래픽 연산 방식이 다르기 때문에 행렬 데이터를 새로 작성해주어야 한다고 한다. 유니티 에디터를 실행하면 하아라키 창에는 기본적으로 Camera와 Light가 세팅된다. 해당 컴포넌트들은 물리 엔진에서 오브젝트를 렌더링하는데 가장 필수적인 요인이다. Cube 오브젝트를 생성하면 다음과 같이 컴포..
유니티 조이스틱 시스템 제작 방법 유니티로 모바일 게임을 제작할 때 조이스틱 시스템을 가져와 플레이어의 움직임을 구현하곤 한다. 보통은 애셋을 가져다 쓰기 때문에 조이스틱 제작 방법이 어렵다고 생각하나, 사실은 기본적인 이동 공식과 Vector3 자료형 값 만으로 구현할 수 있다. 조이스틱의 원리 역시 방향 설정(방향 벡터)과 관련이 있기 때문이다. 조이스틱 제작에 대한 기본적인 아이디어는 다음과 같다. 1. 조이스틱을 만들고 싶다. - UI가 마우스를 따라서 이동하도록 처리 - 조이스틱이 가리키는 방향을 찾고 싶다 - 2. 플레이어의 방향을 찾는다. 외부 클래스를 static으로 선언해 플레이어 이동에 가져오는 방법 // 플레이어 이동 스크립트 float h = Joystick.GetAxis("Hori..
GameManager 게임매니저 클래스 https://docs.unity3d.com/Packages/com.unity.testtools.codecoverage@0.3/api/Global%20Namespace.GameManager.html Class GameManager | Code Coverage | 0.3.1-preview docs.unity3d.com 유니티에서는 전체 게임의 실행을 담당하는 GameManager 클래스를 지원하고 있다. GameManager 클래스와 관련해서 몇가지 공부했던 내용을 정리하려고 한다. 전역 변수 선언 과정에서 다음과 같은 내용을 확인할 수 있다. [HideInInspector]는 어트리뷰트 종류 중 하나로, 한 칸 바로 밑에 있는 변수를 숨기는 역할을 한다. 마찬가지로..
유니티 2D 게임 플레이 영역 제한하는 방법 2D 게임에서 플레이어 이동 영역을 제한하는 방법은 여러가지가 있다. 대표적으로는 게임 뷰에 보이지 않게 오브젝트 Collider로 막아놓는 방법이 있을 수 있겠다. 하지만 코드로 플레이어 이동 좌표 영역의 제한을 걸어서 이동 범위를 한정지어줄 수 있다. transform.position을 활용한 영역 제한 void Update() { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); vector3 dir = new Vector3(h, v, 0); dir.Normalize(); transform.position += dir * speed * Time.deltaTime; if(..
1.오브젝트 회전(EulerAngle / Quaternion) 오일러 앵글은 X,Y,Z축을 기준으로 회전 쿼터니언은 X,Y,Z 축에 상관 없이 내가 회전시키고 싶은 기준 축을 잡아서 돌림(4원수) Vector가 덧셈,뺄샘 / Quaternion은 곱셈 Vector의 회전 방법 = Quaternion * Vector // 총알을 360도 발사하는 코드 void ShootBullet() { int deltaAngle = 360 / bulletCount; Vector3 dir = Vector3.up; for(int i = 0; i < bulletCount; i++) { GameObject bullet = Instantiate(bulletFactory); // ***발사 방향을 정하는 여러가지 방법*** bul..
데이터 저장 로컬 저장 : 내 pc(하드디스크) -> File로 저장 원격 저장 : Server를 통해서 DB(database)에 저장 데이터베이스는 IDC(데이터 센터)의 저장소에 저장 IDC에 저장은 유지보수 관점에서 한계가 있다( 예를 들어 동접 수가 갑자기 늘면 능동적으로 대응하기 힘듦) 이를 보완하기 위해 클라우드를 사용해서 원격으로 데이터를 저장한다. 데이터를 저장할 때 DB에 바로 Push할 수 없고 Server를 통해 요청한다. Server : FrontEnd / BackEnd로 나뉜다. 로컬 저장 : File로 저장하겠다는 뜻(txt. excel, json, xml 등 어떤 양식이든 상관 없음) 유니티에서 제공하는 대표적인 데이터 저장 방법은 PlayerPrefs가 있다. 기본적으로 컴퓨..