유니티 빌드후 휴대기기에서 테스트를 해보는데 화면반응이 느리게 보이는 프레임 저하가 일어난 느낌이 드시나요?
그 해결방법을 여기서 알려드릴게요!
1. 유니티에서 FPS넣기
먼저 fps가 표기되는 코드를 씬에 추가해서 확인을 해보니,
유니티에는 60~300 fps까지도 찍히는데, 빌드해서 휴대기기로 확인해보니 30fps 전후로만 고정되어 보이더라고요!
그래서 저는 빌드 씬에 fps 스크립트를 이렇게 넣었습니다(아래에 메모장 파일 첨부할게요)
화면 하단 왼쪽에 까만색 텍스트로 표기한 코드에요
using UnityEngine;
public class FPSDisplay : MonoBehaviour
{
private float deltaTime = 0.0f;
void Update()
{
// Calculate delta time for FPS calculation
deltaTime += (Time.deltaTime - deltaTime) * 0.1f;
}
void OnGUI()
{
// Set up GUI style and size
int width = Screen.width, height = Screen.height;
GUIStyle style = new GUIStyle();
// Set font size to half of the original size
style.fontSize = height / 50;
style.alignment = TextAnchor.LowerLeft; // Align text to the bottom-left
style.normal.textColor = Color.black; // Set text color to black
// Calculate FPS
float msec = deltaTime * 1000.0f;
float fps = 1.0f / deltaTime;
string text = string.Format("{0:0.0} ms ({1:0.} fps)", msec, fps);
// Add some padding on the left and bottom
float padding = 10.0f; // Padding in pixels
Rect rect = new Rect(padding, height - height / 50 - padding, width, height / 100);
// Draw FPS text
GUI.Label(rect, text, style);
}
}
2. 설정에서 플레이어 셋팅 바꿔주기
퀄리티 기본 설정에서 VSync Count를 Don't Sync로 셋팅해줍니다.
3. 씬 실행에서 Application.targetFrameRate = XX;로 세팅해서 원하는 FPS값을 넣어주기
60으로 해도되고 성능이 좋아야하는 게임이라면 더높게 해도됩니다.
저는 라이트한 캐주얼게임이지만 스크롤 기능도 필요하고 배경 이미지 사이즈가 많이 커서 60대는 되야해서 65로 했어요!
이렇게 해서 빌드 해보니 안드로이드 기기에서 FPS가 65 전후로 고정된걸 확인할 수 있었어요! 훨씬 쾌적~!
1번의 FPS표기를 구현하는 방법은 다른 별도 플러그인이나 더 좋은 방법이 있을 수 있습니다.
저는 추후 치트기능 넣으면서 제대로 된 방법으로 적용할 예정이에요. (지금 코드는 GPT로 생성했습니다^^;;)
저야말로 초보지만, 프레임드랍 이슈로 당황하신 초보분들께 도움이 되었으면 좋겠습니다!
감사합니다~!
'유니티 개발' 카테고리의 다른 글
유니티 버튼 위치 해상도별로 지원하기 (0) | 2025.01.08 |
---|---|
유니티 6000버전 Scene에서 기본 카메라 배경 바꾸기 (0) | 2025.01.08 |
유니티에서 안드로이드 로그 띄우기 (1) | 2024.11.09 |
유니티에서 에셋 수정하기/ 3D 오브젝트 분리하기 (1) | 2023.12.10 |
제페토 월드 유니티 ZepetoScript 버그 해결방법 (0) | 2023.09.05 |