우리 프로젝트에서 적용해야 될점
1.가챠 연출씬 상승 시켜야됨 -> 다른 가챠겜 연출 참고할것
Soul키우기 피드백
1.배경 툰쉐이더 적용 시켜볼것 ->3D Object에 툰 쉐이더
2.GameSceneTrigger에 각종 매니저들이 누락될 가능성이 높다.
SceneManager.sceneLoaded 이벤트 함수를 사용하거나 중계자(Init을 관리하는 해당 함수들)를 사용해서 만들어놓을것
ㄴ 즉, 게임이 재시작되거나 , 다음 Stage로 넘어갈때 메서드에 모아놓은뒤 메서드만 호출하면 다 동작하게끔 만들어 놓을것
3.외부 데이터를 Index(순서) 및 Key값을 사용하여 참조 할 수 있게 설계
ㄴData를 지역변수로 들고있는건 상관없다,
ㄴ 서버가 없어서 초기 런타임시 Json으로 데이터를 파싱해서 가지고 있는게 맞음
ㄴ 서버가 생기면 구조가 바뀔수 있다고 인지는 하고 있어야한다 -> 면접관련
ㄴ 서버가 있다면 : Dict key값 , 주소를 써서 서버에 호출하여 데이터를 받아와야된다. ,
ㄴ DB 컨테이너로 통째로 호출해서 사용하지 말것
4.Skill 쿨타임 에서 List가 아닌 Queue (선입선출) 자료구조 추천
5.ShowUI나 ObjectPool에서 string Key값이 아닌 제네릭을 사용할것을 추천
ㄴ string으로 사용시에 아무래도 문자열 누락 가능성인 높기에 제네릭으로 예방할것
6.MVC 패턴의 UIInventory에서 Model과 Controller의 역할을 Controller가 전부 책임을 맡아도 된다고 함
ㄴ 인벤토리 뿐만 아닌 모든 UI 구조가 현재 UI + 이름 에서 MVC 세 Class를 초기화 하는데 이렇게 하게 되면 문제가 있음
문제 : 해당 구조를 모르는 작업자가 해당 작업 진행시 구조를 모르기에 누락될 가능성이 있음
대처 1 : Controller에서 Model과 View를 초기화 하는 방법 ->하지만 이방법은 현재 Controller가 Monobehaviour가 없기에 사용 불가
대처 2 : UI + 이름 Class에 부모클래스를 만들어 상속 시켜 사용하게 할것 ,
대처 2의 방법으로 리팩토링 진행 예정
7.ScottGaland라고 BigIntegeer 외부라이브러리를 사용하였는데 ReadMe에 참조를 해주고 작성할것
8.로딩씬에서 코루틴 내부 안에 Async를 사용해서 , 코루틴 안에 비동기(Async) 메서드가??(코루틴은 비동기가 아니다!!)
구조가 이상함 ->로딩씬 리팩토링 진행 예정
다른 팀 발표 피드백
1.구조적인 복잡도가 올라가도 괜찮다 -> 너무 신경쓰지 마라
2.역참조를 최대한 지양해라
3.이중 반복문(N^2) 사용해도 된다. 하지만 시돗횟수가 3000회 이상 올라가게 된 경우, 다른 알고리즘을 사용해보아야한다.
4.UI Code에서 데이터 가져오는 행위 => MVC 위반
4-1.OpenUI 실행하기전에 UI를 Update하고 Poen해야된다.
4-2.Data가 필요하면 인자값으로 넣는식으로 사용
4-3.Data가 필요하면 넣는 식으로 사용하는것이 좋음
5.Code는 엄청 세분화 되지 않아도 된다.
5-1.이유 : 면접관이 보기가 힘듬 + 개발 속도가 떨어짐 -> 스크립트의 크기가 커지기전에 나누는 행위 -> 좋지 않다.
5-2. 스크립트가 커지면 나누는것을 지향
6.장착 관련 : ItemManager에서 장착까지 관리하여도 좋다., 따로 Equip 매니저를 안ㅁ들어도 된다는 뜻
7.Find 쓰지마라
8.Skill 같은 경우 범위나 이펙트를 동적 생성해야함 , 결국 일반공격도 결국 Skill로 활용 가능
현재 무기에 데미지가 적용되어 있으면 결국 하드코딩이 되게 된다.
9.폴더링 신경써라
10.데이터 매니저를 제네릭을 사용해서 너무 일반화 하였다 -> 데이터들은 각각 고유의 값과 형식ㅇ ㅣ많기에
일반화(제네릭)을 하지않는것이 좋다. -> DB에 각각 사용 할수있게 Class내에서 변환해서 사용하는 방식이 좋을것같다.
11.리소스 용량이 큰 경우 , 아틀라스를 참고하여 사용 할것