Unity 강의/Unity Course(2) - 절대강좌! 유니티
[Unity Course 2] 04. 주인공 캐릭터 제작 : 캐릭터 회전 - Rotate
첨부엉.
2024. 6. 18. 17:25
반응형
위키북스 출판사 이재현 저자님의 '절대강좌! 유니티' 책을 참고하여 필기한 내용입니다.
캐릭터 회전 - Rotate
void Rotate(Vector3 eulerAngles, [Space relativeTo]);
void Rotate(float xAngle, float yAngle, float zAngle,[Space relativeTo]);
void Rotate(Vector3 axis, float angle, [Space rekatuveTo]);
가장 기초적인 Rotate 함수들
void Update()
{
transform.Rotate(Vector3.up * Time.deltaTime);
transform.Rotate(0, Time.deltaTime, 0);
transform.Rotate(Vector3.up, Time.deltaTime);
}
함수의 인자는 달라도 같은 의미
using UnityEngine;
public class PlayerCtrl : MonoBehaviour
{
[SerializeField]
private Transform tr;
// 이동 속력 변수
public float moveSpeed = 10.0f;
// 회전 속도 변수
public float turnSpeed = 80.0f;
void Start()
{
// 컴포넌트를 추출해 변수에 대입
tr = GetComponent<Transform>();
}
void Update()
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
float r = Input.GetAxis("Mouse X");
// 전후좌우 이동할 방향 벡터 계산
Vector3 moveDir = (Vector3.forward * v) + (Vector3.right * h);
// Translate 함수를 사용한 이동 로직
tr.Translate(moveDir.normalized * Time.deltaTime * moveSpeed);
// Vector3.up 축을 기준으로 turnSpeed만큼의 속도로 회전
tr.Rotate(Vector3.up * turnSpeed * Time.deltaTime * r);
}
}
위의 코드로 작성
InputManger에 Mouse X라고 정의된 축은 마우스를 왼쪽으로 움직이면 음수 값을 오른쪽이면 양수값을 반환
Rotate(회전좌표축 * 회전속도 * Time.deltaTime * 변위입력 값)
씬뷰에서 가상 카메라의 이동
하이어라키 뷰에서 Player를 Shift + F 누르면 씬뷰에서 가상 카메라가 플레이어 위치로 이동하고 가상 카메라가 따라 움직이는 모습을 볼 수 있다.
씬뷰나 하이러키뷰의 다른 오브젝트를 클릭하면 락이 풀린다.
반응형