Unity/유니티 기본
[4.5] 룰렛 돌리기 게임 만들기
ljw4104
2021. 4. 5. 18:16
동작원리
- 마우스를 클릭하는지 감지.
- 클릭했으면 transform.rotation값을 변경시켜 회전하게함. (Z축으로)
- 감쇠 계수를 사용하여 점점 갈수록 느리게 해서 일정속도 이상으로 감소되면 변화각을 0으로 만듬.
RouletteContoller.cs
using UnityEngine;
public class RouletteController : MonoBehaviour
{
public float factor; //감쇠계수
private float rotSpeed; //룰렛이 돌아가는 각도
// 실행될 때 한번만 호출됨
void Start()
{
this.rotSpeed = 0;
}
// 매 프레임마다 호출됨
void Update()
{
//왼쪽 마우스 버튼이 눌렸을 때
if (Input.GetMouseButtonDown(0))
{
this.rotSpeed = 10;
}
this.transform.Rotate(0, 0, this.rotSpeed);
this.rotSpeed *= factor;
//종료판단
if(this.rotSpeed < 0.02f)
{
this.rotSpeed = 0;
}
}
}
* 변수를 public으로 선언하면 Inspector에서 값을 수정할 수 있다.
transform.Rotate(Vector3)
public void Rotate(Vector3 eulerAngles, Space relativeTo = Space.Self);
- z축 주위로 eulerAngles.z, x축 주위로 eulerAngles.x, y축 주위로 eulerAngles.y 순서로 회전을 적용한다.
- eulerAngle : 우리가 현실세계에서 쓰는 각도계. / Quaternion : 유니티 내에서 사용하는 각도계.
- 보통은 Quaternion을 사용하는 곳은 eulerAngle로 작업한 뒤에 Quaternion 변수로 변환하는 것이 편하다.