유니티 키보드 + 오브젝트

phoenixKim·2021년 3월 3일
0

골드메탈_입문

목록 보기
2/8

//출처는 골드메탈님 강의입니다!

Input

: 유니티의 모든 입력값을 관리하는 클래스이다.

키보드 조작

  • 이때는 GetKey() ~ 를 사용한다.

  • 키보드 입력 확인하는 함수로는
    1) 계속 누르고 있는 중: Input.GetKey()
    2) 눌렀을 때 : Input.GetKeyDown()
    3) 눌렀다가 땠을 때 : Input.GetKeyUp()
    로 구분된다.

  • 키보드 입력값
    : KeyCode라는 클래스 안에 모든 키보드 입력값이 명시 되어 있다.

 void Update()
    {
        //게임 내 입력을 관리하는 클래스
        //아무 입력을 최초로 받을 때 true
        if(Input.anyKeyDown)
        {
            Debug.Log("플레이어 아무키 눌렀음!");
        }

        //누를때마다 계속 발생함.
        //if (Input.anyKey)
        //{
        //    Debug.Log("플레이어 아무키 누르고 있습니다.!");
        //}

        if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            Debug.Log("왼쪽 이동값 누름");
        }

        if (Input.GetKeyUp(KeyCode.RightArrow))
        {
            Debug.Log("오른쪽 이동값 눌렀다가 땜");
        }

        //엔터키임.
        if (Input.GetKey(KeyCode.Return))
        {
            Debug.Log("엔터 누름");
        }
    }

마우스 조작

  • GetMouse~ 함수를 사용
    1) GetMouseButton : 계속 누르고 있는 중
    2) GetMouseButtonDown : 눌렀을 때
    3) GetMouseButtonUp : 마우스 눌렀다가 땟을때

//위의 함수 매개변수로는 0과 1이 들어간다.
0 : 왼쪽 마우스버튼
1 : 오른쪽 마우스 버튼

void Update()
    {
        //게임 내 입력을 관리하는 클래스
        //아무 입력을 최초로 받을 때 true
        if(Input.anyKeyDown)
        {
            Debug.Log("플레이어 아무키 눌렀음!");
        }

        if (Input.GetMouseButton(0))
        {
            Debug.Log("왼쪽 이동값 누르고 있는 중");
        }

        if (Input.GetMouseButtonDown(1))
        {
            Debug.Log("오른쪽 이동값 누름");
        }

        if (Input.GetMouseButtonUp(1))
            Debug.Log("오른쪽 마우스 눌렀다가 땜");

    }

InputManager를 이용해 가지고 와서 사용하자.

: InputManager에 설정된 키워드를 가지고 와서 사용함

  • 이때는 GetButton~ 을 사용한다.
void Update()
    {
        if(Input.GetButtonDown("Jump"))
        {
            Debug.Log("점프");
        }
        if (Input.GetButtonUp("Jump"))
        {
            Debug.Log("점프하다가 키놓음");
        }
        if (Input.GetButton("Fire1"))
            Debug.Log("Fire");
    }
  • 키보드나 마우스 눌렀을 때 수치값을 가지고 오는 함수
    1) Input.GetAxis("인풋매니저 값");
    -가중치가 있어서 가감이 이루어지고 -1 ~ 1까지의 값을 가진다.
void Update()
    {        
        if(Input.GetButton("Horizontal"))
        {
            Debug.Log("횡 이동 중..." + Input.GetAxis("Horizontal"));
           
        }       
    }

2) Input.GetAxisRaw("인풋매니저 값")
-가중치 없이 -1 ~ 0 ~ 1 값만 나옴
동시에 반대되는 값들 누르면 0이 나온다.

 void Update()
    {
        
        if(Input.GetButton("Horizontal"))
        {
            Debug.Log("횡 이동 중..." + Input.GetAxisRaw("Horizontal"));
           
        }
      
    }

오브젝트

  • 오브젝트 만들면 기본적으로 Transform 컴포넌트를 가지고 있다.
    1대 1 관계이므로 스크립트내에서 선언하지 않고 transform 이라는 변수로 사용하면 된다!

  • 스칼라 : 크기만 가지고 있음!

  • 벡터 : 크기와 방향을 가지고 있음!

이동시켜보자.

transform.Translate(new 벡터값) : 벡터 값을 현재 위치에 더해주는 함수

  • 해당 위치로 이동시키는 것이 아닌, 오브젝트가 기존에 가지고 있는 위치값에 가산해주는 함수이다.

//계속 해서 위로 올라가는 코드

void Update()
    {
        Vector3 vec = new Vector3(0, 0.1f, 0);
        transform.Translate(vec);
    }

//arrow값 변경에 따라 위치 변경되는 코드

void Update()
    {
        Vector3 vec = new Vector3(Input.GetAxis("Horizontal"),
            Input.GetAxis("Vertical"), 0);
        transform.Translate(vec);
    }
profile
🔥🔥🔥

0개의 댓글

관련 채용 정보