Unity&C# 수집형 오브젝트 만들기1 - 오브젝트 회전시키기

 

hierarchy에서 cube를 만들고, 플레이어 물체와는 눈에띄게 위치나 rotation 등을 조정하고, 색깔을 바꿔서 만든다

 

rotation을 45 45 45로 해주면 큐브가 기울어져있음

 

rotation 값을 조정하면 큐브가 기울어지는 각도가 달라진다는 것을 알 수 있다

 

 

 

 

 

게임같은거 해보면 수집형 물체는 회전해서 눈에 띄도록 만든 경우가 있는데..회전시킬려면 어떻게 해야할까

 

Rotator라는 script를 만들고 pickup 오브젝트에 붙여준다

 

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

public class Rotator : MonoBehaviour
{
    // Update is called once per frame
    void Update()
    {
        transform.Rotate(new Vector3(15, 30, 45)*Time.deltaTime);
    }
}

 

 

큐브 회전에는 물리적인 힘을 사용하지 않고 그냥 알아서 회전하도록 만들고 싶어서 Update() 함수를 사용

 

게임이 실행하는 동안에는 물체가 계속 회전하도록 만들고 싶다

 

현재 rotation 값을 45, 45, 45로 설정해놨는데 게임이 실행하는동안 변하지는 않는다.

 

하지만 큐브가 회전할려면 이 rotation 값을 프레임마다 바꿔줘야한다

 

transform.Rotate(new Vector3(15, 30, 45)*Time.deltaTime);

 

transform.Rotate()로 현재 붙은 오브젝트인 PickUp의 inspector의 컴포넌트인 transform을 참조

 

 

 

 

 

transform.Rotate(new Vector3(15, 30, 45));

 

이렇게만 써도, rotation 값이 15,30,45씩 프레임마다 바뀌는데 회전은 프레임 속도와 무관하게 부드럽게 회전해야한다

 

transform.Rotate(new Vector3(15, 30, 45)*Time.deltaTime);

 

Time.deltaTime을 곱해주면 부드럽게 회전하는 것을 확인할 수 있다

 

deltaTime은 프레임 길이에 따라 값을 동적으로 바꿔서 동작이 부드럽게 이뤄지도록 할 때 좋다

 

실제로 빼고 회전시켜보면 물체가 딱딱하게 움직이는데

 

deltaTime을 곱하면 부드럽게 회전함(차이가 매우 심하다)

 

 

TAGS.

Comments