라벨이 BoxTengo인 게시물 표시

[개발일지] Box Tengo - 리팩토링. 게임 세팅 Scriptable 화

이미지
  기존방식과 문제점 기존 방식 Monobehavior Script 내 변수에 [SerializeField]를 Attribute를 주어, Inspector에서 조절 가능하게 만들고, GameObject를 생성, 거기에 Script를 Component로 추가한 뒤 조절함 문제점 게임 관련된 상수들이 GameObject에 종속되어, 수정하려면 그 오브젝트가 들어있는 씬으로 들어가, 하이어라키를 뒤져서 Object의 Inspector창을 연 다음 수정할 수 밖에 없었습니다.  또한 게임에서 밸런스가 필요한 두 값이 다른 Object에 들어가 있는 경우 두 Object를 이동하며 수정해야 합니다. Obect 자체 코드 또한 길어지게 됩니다. 기타 문제점 정리 1.Play Mode 동안 수정한 값들이 Edit모드로 돌아가면 사라짐.(장점일 수도, 단점일 수도 있음) 2.Setting 세트들  ( ex)총 시간 60초일 때는 따라오는 나머지 세팅값들 set, 30초일 때 밸런스 맞는 나머지 세팅값들 set 등) 3.Setting에 접근하려는 모든 코드가 Setting GameObject를 찾아야함. (static으로 해결 가능) 리팩토링 코드 원래 코드에 변수 선언부에  public GameConfig _settings; GameConfig s; 추가 GameConfig.cs using UnityEngine ; [ CreateAssetMenu (menuName = "BoxTengo/Game Config" , fileName = "GameConfig.asset" )] public class GameConfig : ScriptableObject {     [ Header ( "Time" )]     public float totalTime;     public float secondTime;     public float retryTime;     public float subRetryTim