일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 노하우
- 인디게임 개발
- Aseprite
- 모작
- 기초
- 도트
- TOOL
- COSMO
- 드로잉 연습
- 스마일게이트
- pixel art
- 멋쟁이사자처럼
- 장학팀
- 채색
- 서포터즈
- 에이세프라이트
- 도트공부
- 애니메이션
- 반환원정대
- Pixelart
- layer
- 드로잉
- photoshop
- 포토샵
- 픽셀 아트
- 연습
- menu
- 개발
- 픽셀아트
- 자원순환보증금관리센터
- Today
- Total
소소한 나의 하루들
키보드 마우스 이동하기 본문
출처: https://youtube.com/playlist?list=PLO-mt5Iu5TeYI4dbYwWP8JqZMC9iuUIW2&feature=shared
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 오브젝트에도 움직임을 구현한 스크립트 파일을 컴포넌트로 추가한다.
'개발 > 유니티' 카테고리의 다른 글
실제와 같은 물체 만들기 (0) | 2024.01.18 |
---|---|
이동거리를 공평하게, 델타타임 (0) | 2024.01.18 |
목표지점으로 이동시키기 (0) | 2024.01.18 |
유니티 오브젝트의 생명주기 (0) | 2024.01.18 |
[유니티] 인터페이스 및 조작법 (0) | 2024.01.17 |