게임오브젝트를 회전시킬 때는 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 |