제 작은 뇌용량으로는 싱글턴 없이 코드 짜라고 하면 못버틸듯
[💬] 근데 싱글톤이 아닌 패턴은 뭐임..?
dryrain(dryrain1025)
2023-07-11 22:53:00
추천 0
댓글 25
다른 게시글
-
씨팔 인생은 뭘까
[10][💬] 익명(182.220) | 23.07.11추천 1 -
왜 유니티 에셋은 소스코드를 라이브러리 형식으로 배포안함?
[11][💬] 익명(124.54) | 23.07.11추천 0 -
유니티 소울라이크 몬스터 행동 패턴 질문
[4][🐣질문] ㅎㅎㅎ(211.229) | 23.07.11추천 0 -
a*알고리즘 3d에 적용하는 방법 좀 알려주세요
[2][💬] 익명(223.38) | 23.07.11추천 0 -
스킬을 SO로 관리하는게 좋음?
[8][💬] 익명(180.224) | 23.07.11추천 0 -
character controller랑 collider 무슨 차이임?
[2][🐣질문] 익명(118.39) | 23.07.11추천 0 -
언리얼 메타휴먼 상당히 매력적.
[9][💬] 익명(211.213) | 23.07.11추천 4 -
유니티에서 시간, 날짜 개념 넣으려고 하는데
[4][🐣질문] 익명(118.39) | 23.07.11추천 0 -
언리얼 3개월 써본 후기
[35][💬] 익명(119.206) | 23.07.11추천 18 -
인갤 가끔 날선댓글이 많은이유
[4][💬] 익명(110.11) | 23.07.11추천 1
멀티톤
톤톤해병님
벙글톤
싱글톤 필요하다면 써도 되는데 글로벌 스코프(static)를 사용하는 형태의 싱글톤을 지양하라는거임 스펙 변경으로 인해 싱글톤이 아니게 되었을 때 고치는 게 노가다가 좀 필요하고 샌드박싱이 사실상 불가능해지고 어느 클래스와 엮이는지 파악하는 난이도가 조금 올라감 물론 이건 10만줄 이상의 프로젝트에서나 중요한 사항이고 그렇게 스케일 안 크면 그냥 님이 끌리는 대로 만들어도 됨
유니티에서 제일 흔한건 컴포넌트 패턴..
우리가 Mono 스크립트를 추가해서 GameObject 에 붙이는 방법이에요..
UseCase 간 의존성을 격리하려고 만든 패턴이죠..
개인적으론 싱글턴으로 만든 클래스를 그렇게 붙여서 쓰는 식으로 많이 쓴듯
싱글턴을..붙이면 싱글턴이 아니에요
싱글턴은 해당 객체 내부의 static field 로 유일객체가 존재하는 경우고.. Mono 스크립트로 만든걸 단일로 붙여놓는 경우에는.. 그건 그냥 Dependency injection이에요
다만.. DI 라이브러리가 아니라 인젝션을 에디터에서 손으로 해결하고 있는거죠..
씬에 종속되지 않는 객체를 만드려고 싱글톤을 쓰시려는 거라면.. SO 를 쓰면 싱글톤 없이 동일한 목적을 해결 할 수 있어요
헉..
싱글톤에서 getInstance 로 개체를 가져오는 대신 SO 로 만들어진 개체를 SerializedReference 로 연결하면.. 싱글톤의 단점이 모두 사라지는거에요
하나 이상 존재할 수 없게 만든 클래스를 걍 그렇게 오브젝트에 붙여서 썼었는데.. 처음 유튜브에서 배울 때 그렇게 하다보니 습관된듯
아 SO 는 ScriptableObject 에요
https://docs.unity3d.com/Manual/class-ScriptableObject.html
사실 싱글톤으로 해도 아무 문제는 없어요..
평소에도 SO로 만들어보면 어떨까 싶긴했는데 방법이 있던거구나
다만 어디서나 접근 가능하다는 점이, 개발 중 예상치못한 버그를 만들기 쉬우니까 오히려 초보자에게 권장하지 않는거에요..
꼭 SO로 해야겠다 강박을 가지지 마시고 한 Scene 에 종속되는 Manager 의 경우 그냥 Mono 스크립트로 작성해서 붙이셔도 되요.. 그게 알아서 Reset/Initialize 도 순서에 맞춰 해주니 편하구요..
지금은 씬 하나로 끝나는 게임을 제작중이긴 한데, 그 개념을 이해하고 있는게 중요한거 같슴. 감사합니다
그리고 공격을 만들때.. 똑같은 형식의 스크립트로 붙여놓는데 총이면 총알이 나가게 하고 검이면 근거리 공격을 하게하는 상속 클래스를 작성하죠? 그게 스트레티지 패턴이에요