Notice
Recent Posts
Recent Comments
05-18 01:37
«   2024/05   »
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
Archives
Today
Total
관리 메뉴

Byeol Lo

Unity - Player Controller 본문

Unity

Unity - Player Controller

알 수 없는 사용자 2023. 6. 27. 11:06

유니티를 더 자유자재로 볼 수 있도록 다음과 같은 컨트롤러 사용법을 익히고 간다.

  • 씬 창에 마우스 우클릭을 하는 동시에 wasd를 통해 보고 있는 화면을 이동할 수 있다.
  • 오브젝트를 클릭한 상태로 F를 누르면 오브젝트를 볼 수 있도록 이동한다.
  • F를 누른 상태로 Alt + 마우스 좌클릭으로 물체를 중심으로 360도 회전이 가능하다.
  • 마찬가지로 Alt + 마우스 우클릭으로 확대 축소가 가능하다.
  • Ctrl + Move Tool을 활용해 Transform의 position component를 0.25씩 이동 가능하다.

 

이제 플레이어 컨트롤러 스크립트를 통해 3D 게임을 제작해보자.

 

동력 구현

 다음 스크립트를 통해 동력 구현이 가능하다.

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    private float speed = 10;
    private float rotationSpeed = 100;
    private float verticalInput;
    
    void FixedUpdate() {
        verticalInput = Input.GetAxis("Vertical");
        transform.Translate(Vector3.forward * speed * Time.deltaTime);
        transform.Rotate(Vector3.left * verticalInput * rotationSpeed * Time.deltaTime);
    }
}

 각각의 파라미터들은 Vector3이라는 인스턴스를 받기 때문에 FixedUpdate 특성상 계속 생성될 우려가 있으므로 객체의 멤버변수로 선언해준다. 또한 Time.deltaTime이라는 프레임 하나의 시간을 넣어 시간당 스피드를 Vector3.forward라는 방향으로 가도록 한다. 회전을 할 수 있도록 x축을 기준으로 하기에 Vector3.left와 InputManager에서 "Vertical"에 해당하는 값을 가져와서 곱해준다. 나머지는 동일하다. 이는 위, 아래로 회전을 하는 스크립트이다.

 

카메라 이동

using UnityEngine;


public class FollowPlayer : MonoBehaviour
{
    public GameObject plane;
    private Vector3 offset = new Vector3(20, 3, 5);
    
    void Update()
    {
        transform.position = plane.transform.position + offset;
    }
}

 GameObject라는 변수를 통해 조종할 플레이어를 Inspector창에서 넣어주고, 카메라를 offset만큼 떨어져서 따라가게 하는 스크립트이다. 기본적으로 컨트롤러들을 위와 같이 만드는데 있어서 프로젝트 설계 지침서가 필요할 터이다.

 

Project Document

  • Player Control
  • Basic Gameplay
  • Sound & Effects
  • Gameplay Mechanics
  • User Interface
  • Other

 다음의 내용을 기반으로 우선 프로젝트를 기본적으로 설계한 뒤에 개발을 해간다. 하면서 수정을 조금씩 해도 된다. 보통 이러한 것들은 git을 통해서 개발자들끼리 회의를 통해 진행하게 된다. 

 

Minimum Viable Product(MVP)

 MVP는 Lean Startup 방법론에서 사용되며, 초기 아이디어나 가설을 검증하고 최소한의 투자로 빠르게 피드백을 받을 수 있다. 이는 가장 필수적이고 핵심적인 기능만 포함하여 최소한의 기능으로 개발되며, 초기 사용자들이 제품을 사용하면서 실질적인 이점을 느낄 수 있어야 함을 요구사항으로 한다. 게임에선 스케치를 통해서 간단하게 게임의 흘러가는 방식들만 구현해서 살펴보게 된다.

 

'Unity' 카테고리의 다른 글

Unity - Basic Game Play  (0) 2023.06.27
Unity - The real-time industry  (0) 2023.06.22
Unity - Essential of real-time 2D  (0) 2023.06.22
Unity - Essentials of real-time audio  (0) 2023.06.20
Unity - Essentials of programming in Unity  (0) 2023.06.20
Comments