소소한 나의 하루들

키보드 마우스 이동하기 본문

개발/유니티

키보드 마우스 이동하기

소소한 나의 하루 2024. 1. 18. 13:51

출처: https://youtube.com/playlist?list=PLO-mt5Iu5TeYI4dbYwWP8JqZMC9iuUIW2&feature=shared

 

📚 유니티 기초 강좌

유니티 게임 개발을 배우고 싶은 분들을 위한 기초 강좌

www.youtube.com

Input : '입력'을 관리하는 클래스

 

보통 if문이랑 같이 쓰인다. '만약 어떤 입력이 들어온다면.. 어떤 로직을 실행한다'

 

입력 종류는 3가지로 나뉜다. Down(누르기 ↓) / Stay(누르고 있기 -) / Up(떼기 ↑)

따라서 anyKeyDown / anyKey / anyKeyUP , GetKeyDown / GetKey / GetKeyUp 처럼 사용한다.

 

반환값: 논리값(true/false)

아무 키 입력: anyKey 메소드 (함수 아님) 

Input.anyKeyDown : 아무키 입력 누르기

Input.anyKey : 아무키 입력 유지

Input.anyKeyUp : 아무키 입력 떼기

 

키보드 입력: GetKey() 메소드 (함수 o)-> 매개변수로 키보드 클래스인 KeyCode의 메소드 필요

Input.GetKeyDown(KeyCode.Return) : 엔터 입력 누르기

Input.Getkey(KeyCode.Escape) : esc 입력 유지

Input.GetKeyUp(KeyCode.RightArrow) : 오른쪽 방향키 입력 떼기

 

마우스 입력: GetMouseButton() 메소드 (함수o) → 매개변수로 숫자를 받는다.
(0: 마우스 왼쪽버튼 / 1: 마우스 오른쪽버튼)

Input.GetMouseButtonDown(0) : 왼쪽 마우스버튼 입력 누르기

Input.GetMouseButton(1) : 오른쪽 마우스버튼 입력 유지

Input.GetMouseButtonUp(0) : 왼쪽 마우스버튼 입력 떼기


버튼 방식

Edit 메뉴 > Project Setting > Input Manager에서 설정
Axes 토글 클릭 (Size : 버튼 개수)

Size 크기를 조절해서 Button을 새로 추가하거나 기존 버튼도 변경할 수 있다.

 

버튼 입력: GetButton() 메소드 (함수o) → 매개변수로 '버튼 문자열'을 받는다.

Input.GetButtonDown("Jump") : Jump키 버튼 입력 누르기

Input.GetButton("Horizontal") : Horizontal키 버튼 입력 유지

Input.GetButtonUp("Fire1") : Fire1키 버튼 입력 떼기

 

매개변수로 입력할 버튼은 Project Setting 창의 Input Manager에서 확인할 수 있다.

대소문자 정확히 입력해야한다.

 

축 설정

GetAxis(): 수평, 수직 버튼 입력을 받으면 float를 반환

*GetAxis()는 입력받는 강도에 따라 가중치가 있다. (가속도 느낌)

GetAxisRaw(): 수평, 수직 버튼 입력을 받으면 1을 반환 (고정값)

(왼쪽: -1 / 가만히: 0 / 오른쪽: 1)

 


오브젝트 이동

Transform : 오브젝트 형태에 대한 기본 컴포넌트

게임 오브젝트와 Transform 컴포넌트와 1:1 관계

따라서 일부러 Transform 변수를 선언해서 초기화할 필요가 없다. (오브젝트는 변수 transform을 항상 가지고 있다)

 

벡터

스칼라: 순수한 값

벡터: 방향과 그에 대한 크기 값

void Start()
{
	Vector3 vec = new Vector(1, 0, 0);
	transform.Translate(vec);
}

Translate(): 벡터 값을 현재 위치에 더하는 함수 → 매개변수로 벡터값을 넣는다.

Vector3() : 3차원 벡터 / Vector2() : 2차원 벡터

 

Vector3(x축 값, y축 값, z축 값)

Vector2(x축 값, y축 값)

 

초기화 영역인 Start()이 아니라 업데이트 영역인 Update()에 위 식을 입력하면 1초에 60번씩 실행되니까 계속 설정한 방향만큼 이동할 것이다.

이때 움직이는 오브젝트를 비추고 있는 카메라도 계속 오브젝트를 비춰야하니까 camera 오브젝트에도 움직임을 구현한 스크립트 파일을 컴포넌트로 추가한다.

 

Comments