객체 회전 (Rotate)

1.기본세팅

MMORPG 게임을 할때 캐릭터가 좌우로 돌거나 뒤로 회전하는것을 볼 수 있습니다.
또한 레이싱 게임에서도 많이 사용합니다.
기본적인 세팅은 [Plane][Cube] 오브젝트를 생성해 위치를 맞춰주고, [Meterial]도 생성하여 큐브에 입힌뒤 잘 보일수 있도록 해줍니다.

추가로 카메라가 객체를 따라다니는 레이싱 효과를 주기 위해 카메라를 [Cube] 자식으로 계층화 해줍니다.

2.회전 소스

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CubeController : MonoBehaviour
{

    private float speed = 10.0f;
    private float v;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        // 앞뒤 입력값을 받아서 선언
        v = Input.GetAxis("Vertical");

        if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))
        {
            this.transform.Translate(Vector3.forward * speed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))
        {
            this.transform.Translate(Vector3.back * speed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
        {
            // 전진인지 후진인지에 따라 회전 방향을 설정
            if (v >= 0)
            {
                // 전진일때
                this.transform.Rotate(0, -speed * 10 * Time.deltaTime, 0);
            } else
            {
                // 후진일때
                this.transform.Rotate(0, speed * 10 * Time.deltaTime, 0);
            }
        }
        if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
        {
            if (v >= 0)
            {
                // 전진일때
                this.transform.Rotate(0, speed * 10 * Time.deltaTime, 0);
            }
            else
            {
                // 후진일때
                this.transform.Rotate(0, -speed * 10 * Time.deltaTime, 0);
            }
        }
    }
}

여기서 유의할점은 전진을 할때와 후진을 할때의 회전차이입니다.
후진을 할때는 회전을 반대로 해야 합니다.

완성화면