[Unity]캐릭터 회전
🎮캐릭터 회전
⚙️Torque
플레이어 오브젝트의 Transform Rotation 값을 수정하지 않고 Torque라는 힘을 이용해 플레이어를 회전시켜보자.
Torque를 사용하기 위해 Rigidbody2D에 접근해야 한다. Rigidbody2D 타입의 멤벼변수를 만들고 AddTorque() 메서드를 사용해서 플레이어를 회전시킬 수 있다.
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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
[SerializeField] float torqueAmount = 1f;
Rigidbody2D rb2d;
// Start is called before the first frame update
void Start()
{
rb2d = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
if(Input.GetKey(KeyCode.LeftArrow))
{
rb2d.AddTorque(torqueAmount);
}
else if(Input.GetKey(KeyCode.RightArrow))
{
rb2d.AddTorque(-torqueAmount);
}
}
}
스크립트를 플레이어 오브젝트에 추가하고 프로젝트를 실행시켜 보면 정상적으로 플레이어 회전하는 것을 볼 수 있다.
하지만 방향키를 눌렀다가 떼도 플레이어가 계속 회전하는 문제가 있다. 플레이어의 Rigidbody 2D 컴포넌트를 보면 Angular Drag와 Linear Drag라는 것들이 있다.
- Angular Drag: 회전 할 때 얼마나 마찰을 줄 것인지와 관련됨
- Linear Drag: 앞으로 가거나 뒤로 갈 때 얼마나 마찰을 줄 것인지와 관련됨
Angular Drag 값을 알맞게 조절하면 플레이어가 계속 회전하지 않을 것이다.
Leave a comment