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

2024. 7. 3. 14:27·Game Programming/Unity Engine
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
반응형
저작자표시 비영리 변경금지 (새창열림)

'Game Programming > Unity Engine' 카테고리의 다른 글

[Unity] 코루틴(Coroutine)  (0) 2024.07.14
[Unity] Raycast, LayerMask  (0) 2024.07.09
[Unity] 오브젝트 이동 방법, Delta Time, 입력 받기  (0) 2024.07.08
[Unity] 프리팹(Prefab)  (0) 2024.07.08
[Unity] 유니티 공부 시작. 게임 오브젝트 및 컴포넌트  (0) 2024.07.03
'Game Programming/Unity Engine' 카테고리의 다른 글
  • [Unity] Raycast, LayerMask
  • [Unity] 오브젝트 이동 방법, Delta Time, 입력 받기
  • [Unity] 프리팹(Prefab)
  • [Unity] 유니티 공부 시작. 게임 오브젝트 및 컴포넌트
리태s
리태s
게임 클라이언트 프로그래머 직무를 준비하며 공부한 내용을 정리한 블로그입니다.
    반응형
    250x250
  • 리태s
    LeeTaes 공부노트
    리태s
  • 전체
    오늘
    어제
    • Home (165)
      • 프로젝트 (20)
        • Isaac 3D (5)
        • TimelessAdventure (13)
        • FruitsPuzzle (2)
      • Game Programming (25)
        • C# (8)
        • Unity Engine (6)
        • Unreal Engine (8)
        • UE_Multiplayer (3)
      • 코딩테스트 (111)
        • 프로그래머스 (Lv. 0) (27)
        • 프로그래머스 (Lv. 1) (31)
        • 프로그래머스 (Lv. 2) (21)
        • 백준 (Study) (29)
        • 알고리즘 (3)
      • CS지식 (7)
        • 운영체제 (7)
      • 일상 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    구현
    fruitspuzzle
    Unreal Engine
    issac3d
    C++
    후기
    프로세스
    dataasset
    CS지식
    ai controller
    c#
    unity
    tsoftobjectptr
    project t.a develop
    sesac
    코딩테스트
    2019 kakao
    프로젝트
    2022 kakao
    Summer/Winter Coding
    pcce 기출문제
    백준
    fsoftobjectpath
    unrealengine
    delegate
    프로그래머스
    2018 kakao
    Algorithm
    청년취업사관학교
    timelessadventure
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
리태s
[Unity] 로그 출력 및 프레임 제한 설정
상단으로

티스토리툴바