728x90
728x90
유니티 조이스틱 시스템 제작 방법 유니티로 모바일 게임을 제작할 때 조이스틱 시스템을 가져와 플레이어의 움직임을 구현하곤 한다. 보통은 애셋을 가져다 쓰기 때문에 조이스틱 제작 방법이 어렵다고 생각하나, 사실은 기본적인 이동 공식과 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가 있다. 기본적으로 컴퓨..
Call by Value & Call by Reference 비교 자료형 타입 비교 유니티와 C# 프로그래밍에서 사용되는 Value 타입과 Reference 타입은 다음과 같다. 기본 자료형(Value type) : int, float, string, long, short, byte, array, Vector, Struct, enum 등 참조 자료형(Reference type) = GameObject, Class, Instance 등 Call by Value (값에 의한 호출) 함수가 호출될 때 메모리 공간 안에는 임시 공간이 생성된다. 마찬가지로 함수가 종료되면 임시 공간은 사라진다. 함수 호출 시 전달되는 변수 값을 복사해서 함수의 인자로 전달한다. 복사된 인자는 함수 안에서 사용하는 지역변수이다. ..