LeeTaes 공부노트

[Unity] 로그 출력 및 프레임 제한 설정 본문

Game Programming/Unity Engine

[Unity] 로그 출력 및 프레임 제한 설정

리태s 2024. 7. 3. 14:27
728x90
반응형

개요

이번에는 간단히 C# 스크립트를 추가해보며, 로그 출력 및 프레임 제한을 설정하는 방법에 대해 간략하게 정리해보도록 하겠습니다.


C# Script 추가

C# 스크립트를 추가하는 방법은 매우 간단합니다. 

Project 탭의 +버튼을 눌러 C# Script를 추가할수도 있으며, 빈 공간을 우클릭하여 새로운 C# Script를 추가할 수도 있습니다.

 

생성된 해당 스크립트는 게임 오브젝트로 드래그 & 드롭하여 새로운 컴포넌트로 추가가 가능합니다.


로그 출력

게임을 개발하며 로그는 다양한 측면에서 유용하며, 특히 디버깅이나 현재 상태를 확인하는 등의 작업에서 유용하게 사용됩니다.

 

위에서 생성한 스크립트를 열어보면 Start()Update() 함수가 정의되어 있는 것을 확인해볼 수 있습니다.

  • Start() : 게임이 시작되고 해당 스크립트를 가진 오브젝트가 활성화 될 때 1번 호출되는 함수입니다.
  • Update() : 게임 시작 이후 매 프레임마다 호출되는 함수입니다.

테스트를 위해 Start() 함수와 Update() 함수 내부에 로그를 출력해보도록 하겠습니다.

 

유니티 엔진에서 로그는 Debug.Log() 함수를 통해 출력이 가능합니다.

(추가적으로 Debug.LogWarning, Debug.LogError와 같은 함수를 사용해 로그의 타입을 변경도 가능합니다.)

public class PlayerAController : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        // 로그 출력
        Debug.Log("Hello World - A Start");
    }

    // Update is called once per frame
    void Update()
    {
        // 로그 출력
        Debug.Log("Update");
    }
}

 

플레이 버튼을 눌러 하단 Console 탭에서 실행 결과를 확인해보면 Start() 함수는 1번, Update() 함수는 여러번 호출되며 로그가 출력된 것을 확인할 수 있습니다.

(Collapse를 선택하면 반복해서 발생되는 로그를 모아서 확인이 가능합니다.)


프레임 제한 설정

프레임을 제한한다는 이야기는 1초에 몇 번 화면에 게임을 렌더링 할 것인지를 지정한다는 이야기입니다.

 

만약 프레임 제한을 설정하지 않으면 게임은 가능한 한 많은 프레임을 생성하려고 시도하며, 이는 CPU와 GPU가 지속적으로 높은 부하 상태로 작동하게 됩니다.

 

즉, 프레임을 제한함으로써 게임에 대한 부하를 줄여줌으로써 전력 소비와 발열을 감소시키고, 전체 시스템 성능향상시킬 수 있습니다.

 

유니티 엔진에서는 다음과 같은 간단한 코드로 프레임을 제한할 수 있습니다.

Application.targetFrameRate = 30;

 

실제로 해당 코드를 Start() 함수에 넣고 실행해보면 다음과 같이 프레임이 30fps에 어느정도 맞춰지는 것을 확인해볼 수 있습니다.


정리

유니티 엔진으로 로그를 출력하는 방법과 프레임을 제한하는 방법, 이유까지 살펴보았습니다.

간단히 전체 내용을 요약해보면 다음과 같습니다.

 

  • 로그 출력: Debug.Log, Debug.LogWarning, Debug.LogError 함수를 사용하여 로그 출력 가능
  • 프레임 제한: Application.targetFrameRate 속성을 설정하여 프레임 속도를 제한 가능

참고 자료

https://docs.unity3d.com/kr/530/ScriptReference/Application-targetFrameRate.html

 

Application-targetFrameRate - Unity 스크립팅 API

Instructs game to try to render at a specified frame rate.

docs.unity3d.com

 

728x90
반응형