인프런에 있는 이제민님의 레트로의 유니티 C# 게임 프로그래밍 에센스 강의를 듣고 정리한 필기입니다.
[오브젝트 계속 회전 시키기]
public Transform myTransform;
이런식으로 Transform 컴포넌트를 가져와도 되지만, Transform 컴포넌트는 모든 오브젝트들이 디폴트로 갖고 있는 컴포넌트이기 때문에, 그냥 변수 선언 없이 소문자 transform 으로 바로 사용 가능하다.
transform.Rotate(60, 60, 60);
이렇게 바로 사용 가능하다.
void Update()
{
transform.Rotate(60, 60, 60);
}
계속 회전시키기 위해 update함수내에 이런식으로 작성한다면, 계속 회전은 하지만 문제가 있다.
1초에 60 프레임정도기 때문에, 엄청 빨리 돌게된다. 그래서 시간 간격을 고려해 주어야 한다.
[시간 간격 고려하기]
프레임은 컴퓨터 사양마다 다르기 때문에 30프레임이라면 1/30, 60 프레임이라면 1/60 이런식으로 곱해서 1초에 한번만 실행이 되도록 만들어야한다. 이렇게 1/프레임 을 곱해주는데 이것을 유니티에서 지원해준다.
바로 Time.deltaTime 이다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rotator : MonoBehaviour
{
void Start()
{
}
void Update()
{
transform.Rotate(60 * Time.deltaTime, 60 * Time.deltaTime, 60 * Time.deltaTime);
}
}
이렇게 하면 이제 1프레임 당 60도가 아닌, 1초에 60도로 돌아가게 된다.
'Unity > 유니티강의1' 카테고리의 다른 글
Unity Chapter 4 - 5. 소코반 게임 만들기 : 게임 매니저, 승리 UI, 최종 빌드 (0) | 2022.05.17 |
---|---|
Unity Chapter 4 - 4. 소코반 게임 만들기 : 충돌처리 (0) | 2022.05.17 |
Unity Chapter 4 - 2. 소코반 게임 만들기 : 레벨 디자인 (0) | 2022.05.17 |
Unity Chapter 4 - 1. 소코반 게임 만들기 : 초기 씬 구성 + 플레이어 조작 (0) | 2022.05.17 |
Unity Chapter 3. C# 프로그래밍 : 기본 (0) | 2022.05.17 |
댓글