유니티 공부.. 골드메탈 유니티 입문 강좌 . 키보드 마우스로 이동시켜보자
unity 유니티 공부 2024. 11. 10. 12:26 |
Input.anyKeyDown
아무 입력(키보드나 마우스)을 딱한번 최초로 받을 때 true 가 됨
Input.anyKey
아무 키(키보드나 마우스)를 꾹 누르고 있음
Input.GetKey(어쩌구저쩌구)
특정 키보드 키를 누르는 중
Input.GetKeyUp(어쩌구저쩌구)
특정 키보드 키를 누른 뗐을 때
+
Return : 키보드 Enter 키
LeftArrow : 키보드 화살표 왼쪽 화살표
Escape : 키보드 ESC 키
+
코딩 호기심 나서 코파일럿 ai 에게 질문해봄
"엔터키 또는 스페이스 바 또는 마우스 왼클릭을 누를 시"
이건 어떻게 표현하지? 에 대한 답 :
if (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0))
+
if(input.getkeydown(keycode.LeftAlt) && input.getkeydown(keycode.Y))
왼쪽 알트키와 Y키를 동시에(AND) 눌렀을 경우
는 위 처럼 표현
+
GetMouseButtonDown(0)
이건 마우스 왼 클릭을 의미함
GetMouseButtonDown(1)
마우스 우 클릭을 의미함
GetMouseButtonDown(2)
마우스 중간 버튼 (스크롤 버튼 클릭)을 의미함
GetAxis("Mouse ScrollWheel")
마우스 중간 스크롤 드르륵 을 의미함
+
GetMouseButtonDown(0)
마우스 왼클릭 첫 누름을 감지
GetMouseButton(0)
마우스 왼클릭 꾹 누르는 동안
GetMouseButtonUp(0)
마우스 왼클릭 뗀 마지막 순간을 감지
+
테스트 해보기
엠티 오브젝트 하나 생성
모노비헤비어 스크립트 하나 생성후
아래 코드블럭 복붙
using UnityEngine;
public class inputTest : MonoBehaviour
{
void Update()
{
if (Input.anyKeyDown)
Debug.Log("아무 키를 눌렀음");
}
}
테스트 플레이시 console 창에 메시지가 뜸
+
최적화 팁
Debug Log 문구는 너무 남발하면 게임 내 렉을 유발함
꼭 if 조건문을 같이 사용하는걸 권장함
+
그리고 빌드 버전에서는 호출 안되게 하는 최적화 방법도 있음
+
Edit - Project Settings - Input manager
axes size 30 = 키 설정이 30개다 라는 뜻
negative : 왼쪽과 아래쪽을 의미
positive : 오른쪽과 위쪽을 의미
점프키는 기본 space 키로 할당되어 있음
+
보통 꾹~~ 누르는 입력을 표현시
Down 키는 같이 안씀
Down 키랑 중복되서 두번 점프되기 때문임
+
input system 의 Fire1 을 그대로 스크립트에 넣어도 됨
+
Input.GetAxis("Horizontal"));
하면 가로로 움직임에 점점 늘어나는 가속도 표현
Input.GetAxisRaw("Horizontal"));
하면 가로로 딱딱 바로 이동되는 표현
+
Translate 함수는
3차원 Vector벡터 (X Y Z) 이동 시켜준다 라는 의미임
+
변수가 아닌 딱 지정된 값을 스칼라값(scalar) 이라고 함
+
//주석 comments
/* 이것은 여러 줄에 걸쳐 있는 주석입니다. 여러 줄의 설명을 작성할 때 사용합니다. */
이러한 주석 (comment) 는 아무리 길게 써도 코드를 실행할 때 무시된다
성능에 아무 영향을 주지 않기 때문에 아무 말이나 막 써도 된다
+
유니티 프로그램 자동저장 하기. 외부 에셋
왼위 + 버튼에서
git 을 사용해 다운하기 클릭 후
https://github.com/AnderSystems/Unity-Auto-Save-System.git
를 입력
참고링크
ProjectSettings > Auto Save Setting
-> 이거 써 보니까 동기화 오류 뜸
빈 프로젝트를 저장한걸 불러오게 되는 오류가 나옴
즉, 프로젝트 날리는 경우가 많아서 그냥 수동 저장 하기로함
+