게임오브젝트를 회전시킬 때는 Transform.rotation 속성값을 변경하거나 Rotate계열의 함수를 사용할 수 있다. 

다음은 오브젝트를 y축으로 30도 회전시키는 예이다.

tr.Rotate(new Vector3(0.0f, 30.f, 0.0f);
tr.Rotate(0.0f, 30.0f, 0.0f);
tr.Rotate(Vector3.up * 30f);

마우스입력을 받아 캐릭터가 회전하게 해보겠다. 마우스 움직임이 작기 때문에 스피드가 빨라야 한다.

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

public class PlayerCtrl : MonoBehaviour {
    // Start is called before the first frame update
    Transform tr;
    private float moveSpeed;
    private float turnSpeed;
    void Start() {
        tr = GetComponent<Transform>();
        moveSpeed = 10f;
        turnSpeed = 500f;
    }

    // Update is called once per frame
    void Update() {
        float h = Input.GetAxis("Horizontal");  //AD 입력 좌우
        float v = Input.GetAxis("Vertical");  //WS 입력 전후
        float r = Input.GetAxis("Mouse X");  //마우스 x축 입력
        Vector3 dir = Vector3.right* h + Vector3.forward* v;
        tr.Translate(dir.normalized * moveSpeed * Time.deltaTime);
        tr.Rotate(Vector3.up * turnSpeed * Time.deltaTime * r);
    }
}

씬뷰에서 가상 카메라 이동

씬뷰와 게임뷰를 동시에 표시하고

하이라키에서 Player를 클릭한후 Shift-F를 누르면  Play해보면 씬뷰의 카메라는 Player에 Lock된다.

'유니티게임강좌 > 주인공 캐릭터 제작' 카테고리의 다른 글

[Player제작] 무기장착  (0) 2023.02.26
[Player제작] 애니메이션  (1) 2023.02.26
Assembly  (0) 2023.02.25
[Player제작] 접근제한자  (0) 2023.02.25
[Player제작] 캐릭터의 이동  (0) 2023.02.25

+ Recent posts