-
오늘은 마저 강의를 듣고 개일 프로젝트를 시작했습니다.
개인프로젝트는 저번에 만들었던 아이템 넣느라 고생한 프로젝트의 내용을 좀 더 추가해보려고 합니다.
튜터님께서 피드백 해주신 부분에 대해서도 여쭤봤고 그 부분에 대한 수정 또한 진행할 예정입니다.
1. Delegate
델리게이트와 이벤트를 활용해서 OnClick에 각각 코드상에 등록하는 것이 이후 버튼이 많아졌을 때를 대비해서 활용하기 좋다고 피드백을 주셨습니다.
이에 대한 활용 방법으로는
void Swap(int a, int b) { a+b; } delegate void DSwap(int x, int y) DSwap Dswap = Swap; void OnClickAction(Action<int, int> Dswap) { . . . Swap(3,4); }
이렇게 할 수 있습니다.
delegate를 사용하지 않아도 되기는 하지만 delegate를 사용하면 이렇게 할 수 있습니다.
여기서 포인트는 함수의 매개변수에 함수를 넣을 수 잇다는 것 입니다.
매개변수에 넣은 함수는 함수 내용에서 따로 불러서 실행시킬 수 있습니다.
2. OnClick.AddListener()
class Button에 있는 함수입니다.
Unity에 Inspector에 버튼 컴포넌트를 추가하면 함수를 끌어다가 버튼을 클릭할 때 사용할 수 있도록 하는 부분이 OnClick입니다.
거기에 누르면 실행할 함수를 추가할 수 있게 하는 부분은 AddListener입니다.
이전에 script에 있는 매개변수를 Unity로 설정해주기 위해서 사용했던 함수인데, 그 부분에만 사용하고 다른 버튼에서는 AddListener을 사용하지 않아서 아쉽다고 하셨던건데요.
제대로 알고 쓴 것이 아닐 뿐만 아니라 파라미터 넘기는 방법으로 사용한거라 이것을 사용하는게 좋은지 몰랐습니다..ㅎㅎ
그리고 AddListener를 여러번 써주면 한번 누를 때 같이 실행되기 때문에
현재 SetActive를 수정해야하는 UI마다 따로 함수를 만들어서 실행시킬 button에 전부 AddListener을 해줄 생각입니다.
3. Json
Json은 게임이 종료되어도 삭제되지 않으며 Scene이 바뀌어도 삭제되지 않는 Asset 폴더에 생성되는 것입니다.
예를 들면 캐릭터의 스탯이 변경될 때마다 Json을 이용해서 캐릭터의 스탯을 저장한다 했을 때 씬이 변경되어도 스탯을 따로 저장하는 것이기 때문에 변경된 스탯을 그대로 다른 씬으로 가져갈 수 있습니다.
캐릭터가 등장하는 모든 씬에서 가장 처음에 Json에 저장되어 있는 값을 받아서 로드하므로 DontDestroyOnLoad보다 좋다고 볼 수 있습니다.
DontDestroyOnLoad는 삭제되지 않은 오브젝트에 고나해서 처음에 설정을 따로 해줘야하는 부분이 미숙하거나 잘못 설정할 경우 씬마다 캐릭터가 여러개 로드될 수 있으므로 다루가 어렵습니다.
그리고 현업에서 Json을 많이 사용한다고 합니다.
위에 Button부분을 수정하는 중이라 Json에 대해서 아직 공부를 못했지만 내일 마저 공부 완료하고 사용해보려고 합니다.
Json을 이용하게 된다면 게임이 종료되어도 삭제되지 않기 때문에 불러오기 부분에서 잘 사용될 것이라고 생각됩니다.
오늘은 전체적인 게임 구조랑 Scene 배경만 설정해두었습니다.
안에 있는 내용은 내일 마저 완료할 것 같습니다. 화이팅...
적도 만들어야하는데 ㅠ
'TIL' 카테고리의 다른 글
2024.2.26 - UIManager (1) 2024.02.26 2024.2.21 - Json (0) 2024.02.21 2024.2.19 (0) 2024.02.19 2024.2.16 (0) 2024.02.16 2024.2.14 (1) 2024.02.14