본문 바로가기

Unity/다루기

(7)
[유니티] 씬(scene) 이동하기 본 내용은 필자가 공부한 내용을 정리한 것으로 틀리거나 잘못된 내용이 있을 수 있습니다. 이번에는 씬을 이동하는 방법에 대해 적어보고자 합니다. 어떤 게임을 만들던 간에 모든 것을 한 씬에 담을 수는 없을 것입니다. 그렇기에 씬을 분할하게 되는데요, 그럼 씬을 어떻게 불러올 수 있을까요? 이럴 때에는 SceneManager.LoadScene()을 이용하여 씬을 불러올 수 있습니다. 사용법은 간단합니다. 다음과 같이 사용할 수 있습니다. // 매번 있는 것들은 생략하였습니다 using UnityEngine.SceneManagement; //꼭 이게 있어야 합니다. public class LoadScene : MonoBehaviour { SceneManager.LoadScene(); //괄호 안에는 씬 넘버..
[유니티] 거리 측정하기 본 내용은 필자가 공부한 내용을 정리한 것으로 틀리거나 잘못된 내용이 있을 수 있습니다. 거리를 측정할 때마다 position x, y 거리 구해서 피타고라스를 썼었습니다만, 유니티 내에서 거리를 측정할 수 있도록 함수를 제공하고 있었습니다. Vector.Distance(a, b)를 이용하여 거리를 구할 수 있습니다. 이때, a와 b 사이의 거리를 나타냅니다. public Transform other; void Update(){ //거리는 other의 위치에서 이것의 거리를 나타낸다 float distance = Vector(other.position, transform.position); } Vector.Distance(a, b)는 Vector.magnitude(벡터의 길이를 나타냄)와 같다고 합니다...
[유니티] 난수 발생 int random = Random.Range(min, max); 위와 같이 Random.Range를 사용하여 난수를 얻을 수 있습니다. min부터 max 전까지의 난수를 얻을 수 있습니다. 즉, Random.Range(0, 10)으로 작성을 하면 반환되는 난수의 범위는 0부터 10까지가 아닌 0부터 9까지의 범위를 지닙니다. int형이 아닌 float형으로 반환받을 수도 있습니다. 이 경우에는 max값을 제외하지 않고 포함한 범위로 반환합니다. 추가 Random.Range를 사용하려면 Start()나 Awake() 등에 넣어서 사용해야 한다. 밖에서 썼다가 계속 오류가 났다...
[유니티] 4. 콜라이더(collider), 트리거 본 내용은 필자가 공부한 내용을 정리한 것으로 틀리거나 잘못된 내용이 있을 수 있습니다. 콜라이더는 유니티에서 가장 많이 쓰이는 것 중 하나로, 충돌을 감지할 때 쓰입니다. 3D에서는 Box Collider, Sphere Collider, Capsule Collider, 2D에서는 Box Collider2D와 Circle Collider2D가 대표적으로 쓰입니다. 콜라이더의 형태가 간단할수록 기기에 부하를 주지 않습니다. 위 그림은 콜라이더가 충돌을 감지하는 영역을 나타냅니다. 콜라이더의 요소 1. Box Collider isTrigger은 나중에 설명할 예정이니 지금은 무시합시다. Material은 물체 표면의 물리적 특성을 나타냅니다. 물체 표면의 마찰계수, 탄성계수, 정지마찰력 등을 설정할 수 있습..
[유니티] 3. 이동시키기 본 내용은 필자가 공부한 내용을 정리한 것으로 틀리거나 잘못된 내용이 있을 수 있습니다. 오브젝트를 움직이기 위해 트랜스폼의 값을 건드려 움직여보겠습니다. 우선, 바닥과 구 하나를 준비했습니다 Transform.position 구를 움직이게 할 스크립트를 작성해보겠습니다. void Update() { transform.position = new Vector3(1, 1, 1); } 이렇게 작성하면 오브젝트가 (1, 1, 1)의 위치로 순간이동합니다. 또, 아래처럼 작성할 수도 있습니다. void Update() { transform.position += new Vector3(1, 0, 0); } 위와 같이 순간이동하듯이 움직이는 것을 볼 수 있습니다. (컴퓨터의 성능 탓에 조금 이상하게 나와버렸습니다만) ..
[유니티] 2. 키보드 입력받기 (Input) 본 내용은 필자가 공부한 내용을 정리한 것으로 틀리거나 잘못된 내용이 있을 수 있습니다. Input을 이용하면 키보드, 마우스를 눌렀을 때 값을 입력받을 수 있습니다. 이번에는 값을 입력받을 수 있는 함수를 소개해보고자 합니다. 1. GetAxis, GetAxisRaw InputManager에 입력된 키를 누를 때, 값을 반환합니다. 이때, 반환되는 값은 -1 ~ 1사이가 반환됩니다. nagative button을 누르면 음수가, positive button을 누르면 양수가 반환됩니다. 아무것도 누르지 않는다면 0이 반환됩니다. 물체를 이동시키고 싶을 때 사용합니다. GetAxis() -1 ~ 1까지의 실수를 반환 GetAxisRaw() 버튼을 눌렀을 때 1, -1을 반환. 그렇지 않다면 0을 반환 2...
[유니티] 1. 리지드바디 (Rigidbody) 본 내용은 필자가 공부한 내용을 정리한 것으로 틀리거나 잘못된 내용이 있을 수 있습니다. c# 기초 카테고리에 있는 글들은 문법에 관한 글이었다면, 스크립팅에서는 스크립트를 짤 때 쓰이는 툴에 관해 작성하고자 합니다. Rigidbody(이하 리지드바디)는 오브젝트의 물리적 동작을 가능하게 해주는 주요 컴포넌트 중 하나입니다. 1. Add Component를 통해 리지드바디 추가 2. 추가된 리지드바디 리지드바디의 요소는 각각 다음을 의미합니다. 요소 기능 Mass 오브젝트의 질량 (단위 kg) Drag 공기저항 (값이 클수록 속도가 빨리 감소) Angular Drag 회전 시의 공기저항 (값이 클수록 회전속도가 빨리 감소) Use Gravity 오브젝트에게 작용하는 중력의 영향 여부 (체크 시 중력 작용..