개발의 시작 TIL(Today I Learned)

개발의 시작 TIL(Today I Learned) 프레임 워크와 매니저 관리 하는 법 1

human-Novice 2024. 11. 27. 20:53

싱글톤(Singleton)

  •  추상 클래스에 싱글톤에 대한 코드를 구현 (상속을 해주는것으로 사용)
  • 형식은 제네릭을 설정해주고 where를 통해서 범위를 한정해준다 =>(Singleton<T>)
  • 인스턴스가 null 값이라면 하이라키 창에 있는 오브젝트들을 배열로 가지고 와서 찾는다
  • 오브젝트배열의 길이가 0보다 클 경우 가장 첫번째에 있는것을 인스턴스객체로 지정 후 나머지는 디스트로이를 통해 파괴해준다
  • 오브젝트 배열의 길이가 0보다 작을 경우 게임 오브젝트를 생성해서 이름을 설정하고 해당 스크립트를 추가해준다
  • awake 문에는 따로 조건을 걸어주는 데 생성된 인스턴스가  본인이 아니라면 파괴해주고 본인이 맞다면 파괴되지 않도록 한다

이렇게 만들경우 따로 씬에 매니저 오브젝트를 제작 할 필요 없이 매니저 오브젝트 유무를 체크하고 없을경우 자동으로 하나만 존재하도록 한다

가끔가다 인스턴스가 중복이 되는경우가 있는데 이 방법을 사용하면 중복은 피 할 수 있을것 같다

 


매니저 작성

 

  • 씬로드 매니저 작성

먼저 작성한 싱글톤 코드가 구현 되어있는 추상클래스를 상속한다

현재 씬 네임을 받아오고 씬을 바꿔주는 매서드를 작성

사용되는 코드는 로드씬이 있는데 이 코드는 비동기로 명령을 진행한다  그래서 밑의 코드의 순서를 보장을 안한다

그렇기때문에 로드씬 어싱크를 사용한다 이 코드 같은 경우는 코루틴 진행방식과 같다

로드씬 어싱크는 코드 진행상황을 받아 올 수 있다. (로딩씬 구현 가능)

다만 진행상황을 조건으로 반복문을 사용하게 될 경우 씬이 멈추는 문제가 발생하므로 매서드 자체를 비동기로 진행하는 방법을 사용한다

매서드를 비동기로 진행하는 방법은 void 앞에 어싱크를 붙여주는 것으로 사용 가능하다

어싱크에서는 await를 사용해준다(자세한 사용법은 따로 알아 볼것) 코루틴의 yield와 역할이 비슷하다