UnityFactory_#01

Rio·2021년 7월 24일
0

Unity

목록 보기
2/6

💂‍♀️ 오브젝트 움직임 구현

  • 케릭터를 이동을 구현해야한다
  • awsd나 방향키, 마우스 등 다양한 조작 입력이 있다
  • 유니티에서 기본적으로 함수를 제공해준 것을 활용하면 쉽게 구현 가능
  • 관련 버튼 정보는 Player Setting에서 Input Manager에서 확인 가능

    void Update()
    {
        float horizontal = Input.GetAxis("Horizontal"); //수평 방향키 입력 감지
        float vertical = Input.GetAxis("Vertical"); //수직 방향키 입력 감지
	//벡터 더하기 연산으로 이동하려는 좌표 계산
	Vector3 dir = Vector3.right * horizontal + Vector3.up * vertical;
    	//오브젝트 위치 업데이트
        transform.Translate(dir);
    }

⭐️ 오브젝트 이동범위 제어

  • 오브젝트가 움직임이 화면 밖으로 나가지 않게 조정할 필요가 있다
  • 카메라 뷰 사이즈를 이동 범위로 제한해주면 된다
  1. 오브젝트의 좌표를 ViewPort 기준좌표로 변환 한 뒤
  2. Mathf.Clam01()를 통해서 값의 범위를 0~1에서 제한시켜준다
  3. 그리고 다시 좌표 벡터를 계산해서 position을 업데이트 시켜주면 된다

    void Update()
    {
        //현재 플레이어의 월드좌표(transform.position)을 뷰포트 기준좌표로 변환
        Vector3 viewPos = Camera.main.WorldToViewportPoint(transform.position);
        //Mathf.Clam01(값) : 입력된 값이 0~1 사이를 벗어나지 못하게 강제로 조정
        viewPos.x = Mathf.Clamp01(viewPos.x);
        viewPos.y = Mathf.Clamp01(viewPos.y);

        Vector3 worldPos = Camera.main.ViewportToWorldPoint(viewPos);
        transform.position = worldPos;
    }
profile
우당탕탕 개발 기록지

0개의 댓글