728x90
반응형
게임 난이도 증가: 바닥 회전
Rotator 스크립트 생성
프로젝트 > Create > C# Script 생성
using System.Threading.Tasks.Dataflow;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rotator : MonoBehaviour
{
// Start is called before the first frame update
public float rotationspeed = 60f;
// Update is called once per frame
void Update()
{
TransformBlock.Rotate(0f,rotationspeed,0f);
}
}
Rotator 메서드
TransformBlock.Rotate(float xAngle,float yAngle,float zAngle);
Rotator 메서드는 인자로 X, Y, Z 축에 대한 회전 값을 받고, 현재 회전 상태에서 입력된 값만큼 상대적으로 더 회전한다.
Udate 메서드가 실행될 때마다 매 프레임마다 인자로 받은 값 만큼 회전한다.
이때 Rotator 메서드는 한 프레임에 인자 값 만큼 회전한다는 점에 주의하자. 따라서 우리가 원하는 주기로 설정하기 위해선 시간 간격을 고려해야 한다.
하지만 각 컴퓨터마다 성능이 다르므로 Udate 메서드 안에 작성된 코드는 초당 프레임이 다른 경우를 고려해야 한다. 이를 해결하기 위해선 초당 프레임의 역수를 회전 값에 곱한다.
Rotator 스크립트 수정
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rotator : MonoBehaviour
{
// Start is called before the first frame update
public float rotationspeed = 60f;
// Update is called once per frame
void Update()
{
transform.Rotate(0f,rotationspeed,0f);
}
}
Time.deltaTime 값은 프레임의 주기이자 초당 프레임의 역수를 취한 값이다. 따라서 Time.deltaTime를 회전값에 곱하면 주기를 1초로 맞출 수 있다.
참조: 2022.03.01 - [분류 전체보기] - 💫유니티 메서드💫
불러오는 중입니다...
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rotator : MonoBehaviour
{
// Start is called before the first frame update
public float rotationspeed = 60f;
// Update is called once per frame
void Update()
{
transform.Rotate(0f,rotationspeed*Time.deltaTime,0f);
}
}
728x90
반응형
'Unity > ▶ Game Development: Dodge' 카테고리의 다른 글
[Dodge] #7. 게임 완성 (1) | 2022.03.02 |
---|---|
[Dodge] #5. 탄알 생성기 (0) | 2022.02.26 |
[Dodge] #4. 탄알 생성 (0) | 2022.02.25 |
[Dodge] #3. 스크립트 개선하기 (0) | 2022.02.24 |
[Dodge] #2. 플레이어 (0) | 2022.02.04 |