Posted in: Unity, 메서드 & 팁 정리

(유니티) 인스턴스화 Instantiate

인스턴스화? 유니티에서의 인스턴스( instance )는 이미 만들어진 게임 오브젝트를 필요할 때마다 실시간으로 만든다는 의미입니다. 보통 총알이나 몬스터를 찍어낼 때 사용합니다. 나루토가 사용하는 그림자 분신술과 비슷하다고 볼 수 있습니다. 그림자 분신술은 모두 다 똑같은 힘을 가지는 분신들이지만 본체는 단 하나죠. 스크립트를 새로 만들어 위 코드와 같이 작성합니다. Instantiate함수는 게임 오브젝트를 인스턴스 할 수 있는 함수입니다. 히에라키 […]

Posted in: Unity, 메서드 & 팁 정리

(유니티) 회전(rotation)과 쿼터니언

게임 오브젝트를 코드에서 회전시키기 위해 new Vector3();를 사용하면 에러가 난다. Vector3 형식을 Quaternion 형식으로 변환할 수 없다.라는 문구가 뜨는데 위치와 달리 회전은 쿼터니언(Quaternion)을 사용한다. Quaternion.Euler함수를 사용하면 Vector3를 쿼터니언으로 쉽게 변환할 수 있다. 쿼터니언은 x,y,z,w 4개의 축을 사용하여 Vector3를 사용했을 때 생기는 짐벌락 현상을 방지한다. 짐벌락 현상이란 오브젝트가 회전을 하면 회전하는 오브젝트 기준으로는 공간 좌표도 회전하게 […]

Posted in: Unity, 메서드 & 팁 정리

(유니티) 로컬 스페이스, 글로벌 스페이스

각각 로컬 스페이스, 글로벌 스페이스 설정일 때 로케이션 방향을 본 것입니다. 글로벌은 게임 세상을 기준으로 하는 절대적인 좌표축. 로컬은 나 자신의 부모 또는 나 자신의 회전을 기준으로 하는 좌표축입니다. 두 가지의 차이점은 글로벌은 절대적인 좌표이고 로컬은 상대적인 좌표입니다. 보통 평행이동은 기본적으로 로컬 스페이스를 기준으로 이동합니다. 게임 세상을 기준으로 하는 것이 아니라 자기 자신을 기준으로 한다는 […]

Posted in: Unity, 메서드 & 팁 정리

(유니티) 충돌감지함수 – OnTrigger, OnCollision

사진이 작아서 잘 안보이지만 유니티 게임 오브젝트는 (3D의 경우) ‘Collider’ 컴포넌트를 가진다. 2D의 경우 Add Conponent 를 통해서 추가하면 된다. (Add Component -> Physics -> 원하는 Collider) ‘Collider’ 컴포넌트를 가지고 있으면 충돌처리를 할 수 있다. ‘Collider’ 컴포넌트의 ‘Is Trigger’ 가 체크(true)되있으면 다른 게임오브젝트들이 통과할 수 있다. 이제부터 설명할 함수들은 조건이 성사되면 유니티에서 실행시켜주는 함수들이다. void OnTriggerEnter(Collider […]

Posted in: Unity, 메서드 & 팁 정리

(유니티) 게임 매니저가 쓰이는 이유

  유니티에서 ‘게임 매니저’ 스크립트를 만들면 이미지가 자동으로 톱니바퀴로 바뀐다. 이건 게임 설정을 의미하는 것과 비슷한 아이콘이다. 그 만큼 많은 사람들이 사용하기 때문에 유니티에서 자동으로 지원하는 것이다. 왜 사용할까?   파란색 박스를 노란색 목표지점까지 옮기는 ‘소코반’ 게임을 만들고 있다고 치자.   해당 게임에서 승리조건은 파란색 박스를 모두 노란색 목표지점까지 옮기는 것이다. 그렇다면 효율적으로 승리조건을 알아내는 방법은? […]

Posted in: Unity, 메서드 & 팁 정리

(유니티) 스크립트에서 Transform 컴포넌트 불러오기

보통 스크립트로 컴포넌트의 기능을 사용할 때 위 사진들처럼 사용하는 경우가 많다. 하지만 ‘Transform’ 컴포넌트는 모든 게임 오브젝트가 소유하는 컴포넌트이기 때문에 유니티에서 특혜를 받는다. 게임 오브젝트 자신이 가지고 있는 ‘Transform’ 컴포넌트를 사용할 경우 소문자로 transform 을 사용하면 바로 사용 가능하다. transform.원하는 함수;

Posted in: Unity, 메서드 & 팁 정리

(유니티) 벡터 연산 기초

  유니티를 사용하면 Vector3(또는 Vector2) 함수를 많이 접하게 된다. 게임에 활용되는 벡터 개념은 그리 어렵지 않다. 중요한 3가지 개념이 있는데 간단하게 알아보도록 하자. 벡터는 방향과 크기(거리, 길이, 속도)를 가진다.   몬스터는 (0, 0) 좌표에 있고 주인공은 (2, 2) 좌표에 있다고 가정해보자.   방향에 대한 내용은 밑에서 알아보기로 하고 크기에 관한 내용을 알아보자.   몬스터와 주인공 […]

Posted in: Unity, 메서드 & 팁 정리

(유니티) 캐릭터 이동

1. Input.GetKey 함수 사용 캐릭터 게임 오브젝트는 콜라이더와 리지드바디 컴포넌트를 가진다는 전제하에 작성하였습니다. Input.GetKey는 키입력을 수정할려면 코드를 바꿔야 하는 불편함이 있습니다. 각 방향마다 코드를 작성해야 하므로 코드가 길어집니다(가독성이 떨어진다). 2. Input.GetAxis 함수 사용 유니티 프로젝트에서 Edit -> Project Settings -> Axes에 들어가면 Input.GetAxis 에서 맵핑 되어있는 기능을 확인할 수 있습니다. 위 사진의 빨간색 박스는 왼쪽, […]