전체 글
-
2024.2.28TIL 2024. 2. 28. 09:51
코드 카타 중에서 항상 for문을 이용해서 만들었던 부분을 다른 방법으로 작성해주신 것을 찾아보게 되었습니다. 친절하게 주석으로 똑같은 의미의 for문에 대해서 정리를 해주셨기 때문에 가져오게 되었습니다. 1. 배열에 같은 값 넣어주기. int[] have = new int[n]; for(int i = 0; i < n; i++) { have[i] = 1; } int[] have = Enumerable.Repeat(1, n).ToArray(); System.Linq 에 있는 Enumerable은 Repeat와 Range를 가지고 있습니다. Enumerable.Repeat(반복 시킬 값, (int)반복할 횟수) : 반복할 횟수만큼 값을 반환합니다. 반복시킬 값의 타입은 상관없습니다. Enumerable.Ra..
-
2024.2.27TIL 2024. 2. 27. 21:31
퀘스트를 만드는 것이 이리 힘든건지 몰랐습니다. 퀘스트를 만들다가 적는... 구조 입니다. 퀘스트에서 가장 쉬운 부분은 퀘스트 UI입니다. 그래서 UI 먼저 만들다가 퀘스트랑 UI 연결한 부분까지 완성했는데 순서라던가 방식이 잘못되가지고 연결 끊고 퀘스트 먼저 다시 만드는 중입니다. 이 구조는 퀘스트 뿐만 아니라 다양한 정보를 가지고 있고 그 중에서 한 정보를 불러와서 인게임에 적용하는 모든 GameObject에서 사용할만한 구조입니다. 1. Information(SO) 보통 아이템의 경우 ScriptObject를 사용해서 정보를 가지게 됩니다. 퀘스트의 경우 ScriptObject를 사용하지 않기 때문에 List를 이용해서 퀘스트 제목, 내용, 보상 등을 만들어주었습니다. public class Que..
-
2024.2.26 - UIManagerTIL 2024. 2. 26. 22:04
개인 프로젝트 막바지에 Json에 대해서 여쭤보다가 나온 내용이긴합니다만.. 시간이 부족해서 제대로 다뤄보지 못했는데 이제서야 다뤄보는 UIManager입니다. UIManager라는 이름을 가진 cs들을 많이 만들었었는데요. Manager라고 하면은 싱글턴을 가지면서 Json처럼 UIManager를 AddComponent를 하지 않아도 사용이 가능해야합니다. 그렇기 때문에 public을 이용해서 GameObject와의 연결이 있어서는 안됩니다. 1. UIBase script UI script를 만들 때 부모 역할을 하는 script입니다. UI 생성 시 공통되는 부분을 가지고 있으며, 현재 없더라도 생성해주는 것이 좋습니다. 2. 제네릭을 통한 생성 UIBase script를 생성하는 이유는 여기에 있습..
-
2024.2.21 - JsonTIL 2024. 2. 21. 20:45
개인프로젝트 최종 제출이 내일 21시까지라서 좀 빡빡하긴 하지만 Json부분을 거의 완성시키면 내일 할 것을 적 만들고 보상 얻고 MainScene으로 이동하면 되는 거기 때문에 가능하지 않을까 싶습니다. 1. Json 생성 처음에는 시스템이 따로 있는가 했는데요. 그건 아니였습니다. 정보를 저장할 것을 가질 cs파일을 만들어줍니다. 거기에 저장할 변수들을 적어줍니다. class PlayerData { public int characterIndex; public string name; public int level; public int coin; public int health; public int exp; public float speed; public int attack; public int defe..
-
2024.2.20TIL 2024. 2. 20. 21:03
오늘은 마저 강의를 듣고 개일 프로젝트를 시작했습니다. 개인프로젝트는 저번에 만들었던 아이템 넣느라 고생한 프로젝트의 내용을 좀 더 추가해보려고 합니다. 튜터님께서 피드백 해주신 부분에 대해서도 여쭤봤고 그 부분에 대한 수정 또한 진행할 예정입니다. 1. Delegate 델리게이트와 이벤트를 활용해서 OnClick에 각각 코드상에 등록하는 것이 이후 버튼이 많아졌을 때를 대비해서 활용하기 좋다고 피드백을 주셨습니다. 이에 대한 활용 방법으로는 void Swap(int a, int b) { a+b; } delegate void DSwap(int x, int y) DSwap Dswap = Swap; void OnClickAction(Action Dswap) { . . . Swap(3,4); } 이렇게 할 수..
-
2024.2.19TIL 2024. 2. 19. 20:53
오늘은 하루종일 강의 듣고 완료하는 것을 목표로 했습니다. 최종 프로젝트에 대한 이적시장도 열려서 눈여겨보느라 완료는 못했습니다. ㅠㅠ 4팀 정도 구인글을 올리셨던데 이미 2팀은 정원이 찼더라구요. 추가 인원 1명을 구하는 것이였습니다. 근데 매우매우 특별한 일이 아니면 추가 인원 안해주신다고 하셔서 무슨 내용일까 궁금하긴 했지만 물어보지는 않았습니다. 한 팀은 정확하게 어떤걸 할지 안정해놓은 것 같아서 보류했고 남은 한팀은 할 것을 정확하게 명시해주셨기 때문에 여쭤봤는데 흥미롭더라구요. 그래도 바로 결정은 안했습니다. 저 하겠습니다! 했다고 다른 팀들 더 나오면 저것도 궁금한데.. 할 것 같아서 궁금한 점만 여줘보고 좀 더 생각해보려고 합니다. 구인글 추가적으로 올라오는 것들 보고 결정해보려고 합니다...
-
2024.2.16TIL 2024. 2. 16. 20:43
팀 프로젝트가 끝났습니다. 마지막까지 코드확인 오류확인하느라 힘들군요. 팀프로젝트가 끝났기 때문에 강의를 미리 주셨습니다. 강의 뿐만 아니라 추가 세션도 있어서 그것도 듣게 되었습니다. 세션내용은 프로젝트 설계에 관한 이야기였습니다. 참고사항이지만 코드를 어떻게 정리할 수 있을까 하면서 개인 프로젝트를 진행했던 저로써는 정리 방식에 대한 이야기라 좋았습니다. (팀 프로젝트는 팀에 맞춰서 진행합니다.) 원본은 다른 분이 쓰신거라고 하십니다. 1. Enum, struct, 유틸리티 함수, 글로별 변수 모아두기 Enum이나 struct는 무엇인지 한 번에 알아볼 수 있지만 유틸리티 함수와 글로벌 변수는 감이 잘 안오는데요. 유틸리티 함수는 자주 사용되는 것들, 두 번 이상 사용할 함수들입니다. 게임을 실행할 ..
-
2024.2.14TIL 2024. 2. 14. 20:32
발렌타인 데이입니다. 크게 중요하지 않죠. 오늘은 여태까지 진행한 부분에 대해서 좀 적어보려고 합니다. GameObject.activeInHierarchy vs GameObject.activeSelf 둘 다 게임 오브젝트의 활성화 상태를 확인할 수 있습니다. 둘의 차이점은 씬에서 보이는 것과 아닌 것 차이입니다. activeInHierarchy : true이지만 씬에서 보이지 않는다면 false를 반환 activeSelf : 씬에서 보이지 않아도 true 상태이면 true를 반환 오브젝트가 true인 상태에서 부모 오브젝트가 false일 경우 오브젝트는 씬에서 보이지 않습니다. 따라서, activeInHierarchy = false, activeSelf = true를 반환합니다. 특정 오브젝트가 씬에 있..