Galaxy Ball/5. 최적화 17

최적화 - 17 (최적화 성공)

드디어 최적화가 성공했다! 오늘 아침 앱을 빌드하여 확인해보니 드디어 게임의 모든 부분들이 부드럽게 움직이는것을 확인하였다너무나도 감격스럽다....  그래서 게임이 여태 끊겼던 결정적인 원인이 뭐냐고 묻는다면매 수정을 할때마다 빌드를 하여 알아본것이 아니기에 확실히 이거다라고 대답할 순 없지만내 개인적인 생각으로 가장 영향이 컸던것은 Rigidbody2D - Interpolate 설정 유무라고 생각한다 실제로 이걸 했냐 안했냐에 따라 컴퓨터에서도 한눈에 보일만큼 굉장한 차이가 보였고이 영향이 가장 크지 않았을까 싶다 물론 코드들도 최대한 최적화가 되도록 수정해준것도 있고그중 무엇보다 공을 컨트롤하는 코드 수정이 가장 영향이 크다고 생각한다 using System.Collections;using Syste..

최적화 - 16 (최종 마무리 #텍스쳐 낮추기)

이제 정말 마무리로 모든 코드들을 쭉 훑고 마지막으로 더 볼게 있는지 확인하고 고쳐보겠다 문듯 생각난건데 모바일 배경에 이렇게까지 맵이 넓어도 되는건가 싶었다물론 2D 게임이니 쉐이더도, 메터리얼도 사용하지 않지만 정말 낭비되는 공간이 많을 정도로 과하게 넓긴하다... 그러다보니 당연히 최적화에 타격을 주지 않을까라는 생각이 들었고 이것도 한번 최적화해보도록 하겠다 우선 스테이지맵을 채우고 있는 이 원본 이미지에서 Texture Type > Sprite (2D and UI) 를 선택한다면 밑에서 옵션을 선택할 수 있다 그 중에서 나는 Override For Android를 선택해  Max Size > 512Compressor Quality > FastFormat > RGB Compressed ETC2 4..

최적화 - 15 (코드 수정 마무리)

이제 정말 얼마 안남았다... 게임에 쓰인 대부분의 스크립트들이 한번 이상 최적화를 거치거나 확인했고마지막으로 남은 카테고리는 바로 멀티플레이다. 지금까지 늘 메인컨텐츠라고 생각하고 여겨온 싱글플레이에 개발을 집중해왔기에 멀티플레이는 계속 우선순위에서 미뤄오긴 했었다. 그렇기에 최적화도 맞지만 개발 마무리라고 하는것도 맞는 표현이겠다  void Update() { if (Time.time >= nextSpawnTime) { SpawnSphere(); nextSpawnTime = Time.time + Random.Range(minSpawnTime, maxSpawnTime); } } 우선 멀티플레이에서 아이템을 일정 텀..

최적화 - 13 (코드 수정 #SmoothDamp, #LateUpdate, #Awake)

계속해서 코드 수정을 이어나가보겠다 이번글에서는 적 유닛에 대한 코드 수정을 이어나가보겠다using System.Collections;using System.Collections.Generic;using TMPro;using UnityEngine;using UnityEngine.SceneManagement;public class EnemyBulletControl : MonoBehaviour{ SPGameManager spGameManager; Rigidbody2D rb; BGMControl bGMControl; Vector2 lastVelocity; float deceleration = 2f; public float increase; private bool iscol..

최적화 - 12 (코드수정 #Canvas Group, #DOTween)

지난글까지는 설정에서 건드릴 수 있는 부분들을 손봤다면 이번에는 코드들을 수정해볼 생각이다여러차례 만들었지만 이 게임은 게임개발을 배워나감과 동시에 만든 게임이기 때문에초창기에 만들어둔 코드들은 아무것도 모르고, 최적화를 염두조차 해두지 않고 만든 코드들이 대부분이다 그러니 이번엔 코드들을 싹 다 검토하고, 필요없는 코드들은 지워버리고, 최적화가 필요한 부분들은최적화를 해주고 코드를 수정해주는걸로 하겠다 가장 먼저 생각나는건 바로 페이드인 효과. 게임을 맨 처음 시작할때 새로하기든, 이어하기든 뭐든 눌렀을때화면이 검은색으로 페이드인 된뒤 알맞는 씬으로 로드되도록 하였는데 이게 컴퓨터에서는 부드럽게 페이드인 효과가 이루어지는데 폰에서는 대놓고 뚝뚝 끊긴다는것이 보인다는것..그렇다고 둘의 사양이 천지차이니 ..

최적화 - 11 (설정수정★)

2024.10.09 - [Galaxy Ball/5. 최적화] - 최적화 - 10 (설정 수정★) 최적화 - 10 (설정 수정★)안좋은 소식이 있다.. 최근에 핸드폰에다 다시 한번 빌드를 해본 결과....달라진게 없다...확실히 컴 유니티에서는 부드러워진게 체감이 되길래 진짜 끝난줄 알았는데 다시 원점이다 하지만 낙sangeun00.tistory.com 지난 글에 이어 계속해서 최적화를 해보도록 하겠다  Rigidbody Interpolation:Rigidbody2D의 Interpolation을 Interpolate 또는 Extrapolate로 설정하여 물리 기반 오브젝트의 움직임을 더 부드럽게 만들 수 있습니다.Dynamic Resolution:모바일 플랫폼에서는 동적 해상도(Dynamic Resolut..

최적화 - 10 (설정 수정★)

안좋은 소식이 있다.. 최근에 핸드폰에다 다시 한번 빌드를 해본 결과....달라진게 없다...확실히 컴 유니티에서는 부드러워진게 체감이 되길래 진짜 끝난줄 알았는데 다시 원점이다 하지만 낙심하지말고 다시 방법을 찾을때까지 해보자! 지금부터는 순서 같은것 없이 최적화에 조금이라도 도움이 될 것 같으면 실행에 옮겨보겠다 그러고보니 최적화를 하고 나서 만든 실행파일은 찍어둔 로그들을 하나도 제거하지 않았었다  상황에 따라 Debug.Log 제거하는 법이미 어느정도 예상은 하고 있었지만 스크립트안에 찍힌 로그가 많을시 모바일 환경안에서는 CPU 사용량이 증가하여 성능에 영향을 준다고 한다 그리고 웬만한 로직보다 이 로그 연산이 더 무sangeun00.tistory.com 위에 첨부한 방법대로 찍은 로그들부터 제..

최적화 - 9

자 그 다음으로 할 것은 이제 인게임속 공이 아닌 스테이지 선택창에 위치한 StageBall이다이 공의 특징은 넓은 맵을 돌아다니며 플레이어가 원하는 스테이지를 선택하는 역할을 수행한다 그리고 물론 이 StageBall도 최적화를 하여 부드럽게 움직이도록 구현해보겠다 public class StageBallController : MonoBehaviour{ Rigidbody2D rb; Vector2 lastVelocity; float deceleration = 2f; public GameObject StageStart; private StageGameManager stageGameManager; private StageBallManager stageBallManager; ..

최적화 - 8

최적화 - 7드디어 공을 최대한 부드럽게 이동시키는데 성공했다. 이제 남은건 게임에 등장하는 모든 공들을전부 각자의 상황에 맞춰 똑같이 최적화를 해주는것이다 using System.Collections;using System.Collections.sangeun00.tistory.com지난 글에서 일부 적 총알과 아이템들을 최적화 해주는데 성공했으니 이번글에서는게임에서 사용될 모든 아이템, 공들을 최적화 해주도록 하겠다  그전에 한가지 문제가 있다. 아무래도 싱글플레이와 멀티플레이를 둘다 제공하는 게임이기에싱글플레이용 코드와 멀티플레이용 코드가 나뉘는것...큰 차이는 없다 다만 싱글플레이는 SPGameManager에서 공을 날릴 힘과 방향을 받아오고멀티플레이는 GameManager에서 받아오는것뿐 그리고 ..

반응형