Unity59 2024.06.21 TIL - 이벤트 구독 취소의 중요성 아이템 스폰이 Max값보다 오버되어 스폰되는 문제맵에 아이템을 최대 10개까지만 생성하고 싶었다.그런데 플레이어가 아이템을 빠르게 주우니까 최대 10개보다 더 아이템이 생성되는 문제 가 발생했다. private IEnumerator SpawnItemsWithInterval() { while (true) { yield return new WaitForSeconds(SpawnTime); if (CurItemsOnMap = MaxItemsOnMap) { Debug.LogWarning("Reached maximum item count."); return; .. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 6. 21. 2024.06.20 TIL - 유니티 아이소메트릭(Isometric) 타일맵(Tilemap)에서 오브젝트 랜덤 생성하기 2D에서 랜덤 좌표 x,y를 타일맵에서 가져오기 위한 고민내가 오늘 하고 싶었던건 타일맵 위에 아이템을 랜덤으로 스폰하는 것이었다. 일반적인 타일맵은 직사각형 형태의 `x, y`가 명확한 형태이다.그래서 그냥 타일맵의 `x, y`의 최소~최대값 사이의 랜덤값을 뽑으면 됐다. 그런데 위와 같은 아이소메트릭 형태의 타일맵은 그냥 x, y값을 가져와도 되는건가? 의문이었다. 생각해본 첫 번째 방법2024.06.05 - [스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록] - 2024.06.05 TIL - MenuItem, 유니티 메뉴창에 툴 구현하기 ▲ 지난번에 오브젝트에 자동으로 박스 콜라이더를 부착하는 툴을 만든 적이 있다.그때 사용했던 방식 중, 오브젝트의 스킨 랜더러의 `bound.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 6. 20. 2024.05.09 TIL - 부채꼴 모양으로 화살 날리는 로직 위의 사진은 예시인데 저렇게 부채꼴 모양으로 화살이 나가도록 하는 로직을 강의에서 알려주셨다.강의에서 처음에 그림으로 설명하시는데 이해가 안가서 질문드리러 갔더니부채꼴 모양으로 나가도록 구현한 것이라 하셨다.`부채꼴`이라고 하시니 이해가 됐다.. float minAngle = -(numberOfProjectilesPerShot / 2f) * projectilesAngleSpace + 0.5f * rangedAttackSO.multipleProjectilesAngle;그런데 문제는 코드이다..다른 사람들이랑 머리를 맞대고 고민을 해보다가 다같이 튜터님께 질문을 하러 갔다. Q. `0.5`를 곱해서 보정한다고 하셨는데 정확히 무슨 의미인가요? A. 화살이 부채꼴 모양으로 고르게 펼쳐져야하는데 중심선(캐릭터가.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 5. 9. 2024.05.08 TIL - GravityScale, InputManger 설계 Unity Rigidbody2D Gravity Scale Rigidbody에서 `Gravity Scale` 값이 `1`일 때의 모습이다.중력의 영향을 받아 점점 아래로 떨어진다.그래서 `Gravity Scale` 값을 `0`으로 바꿔주면 멈춘다. InputManger 설계컨트롤러는 어떤 오브젝트의 상황에 따라 행동을 결정하고, 이를 `TopDownMovement`와 같이 실제 로직을 수행하는 컴포넌트들에 이벤트들을 전달하는 역할을 한다.이러한 컨트롤러는 플레이어에만 들어가는 것이 아니므로, 이번에는 `PlayerInputController`를 만들겠지만, 적에게도 사용되는 공통적 기능들은 `TopDownController`에 정의하여 이를 재활용할 수 있게 한다.`TopDownController`에서는.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 5. 8. 2024.05.07 TIL - 프로젝트 마무리 프로젝트 개요팀원 소개프로젝트 소개클래스 설계https://www.figma.com/file/bzfUJ0X8lwQcJv28lGtcW3/%ED%8C%80%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-3%EC%A3%BC%EC%B0%A8?type=design&node-id=0-1&mode=design&t=nWoSgyxRfvbI87Qp-0플로우 차트시연 영상https://youtu.be/MrC1erl00S4기술스택GitHubOrganizations 리포지토리 생성GitHub Desktop 사용Stash로 작업물을 유지한 채 Pull 받아온 후 Push하여 Main에서 안전하게 받아오기그외 Discard, Revert 사용해봄깃 플로우 브랜치 전략 : Main -> Dev -> Feature .. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 5. 7. 2024.04.26 TIL - enum, Json 문제점 Json으로 클래스 데이터 저장시 자식 클래스가 아닌 부모 클래스명으로만 저장되는 문제 // 장착중인 방어력 아이템 능력치를 모두 더하여 반환 public double TotalDefenseItemStatus() { double totalItemValue = 0; foreach (Item item in items) { Console.WriteLine(item.itemValue); // 5 Console.WriteLine(item.isEquipped == true); // True Console.W.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 4. 26. 2024.04.25 TIL - double형 소수점 자리수, ToString, int, 명시적 형변환 double형 변수의 소수점 자리수 문제43 // Math.Round()로 첫째 자리수까지 반올림 한 결과체력 86.1 -> 43.099999999999994double형을 쓰다보면 나누거나 곱할 때 소수점 자리수가 길어져서 귀찮은 일이 발생한다.그래서 `Math.Round(변수명, 1)`를 사용하여 첫째 자리수까지 반올림 한 결과를 `체력 감소 메소드`의 매개변수로 넘겨줬는데...보다시피 `43.099999999999994`로 저장됐다.. 분명 43을 넘겨줬는데?? (86.1 - 43 = 43.1) 문제는 `부동 소수점`의 정확도와 관련이 있다.컴퓨터는 실수를 이진법으로 표현하므로, 10진수로 표현되는 숫자 중 일부는 정확히 표현할 수 없다. 이로 인해 부동 소수점 연산에서 정확한 결과를 기대하기 어.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 4. 25. 2024.04.24 TIL - Item 클래스의 상속, 인터페이스, 다중 상속 Item 을 인터페이스로 만들었을 때 문제점// 아이템을 사용할 수 있는 인터페이스public interface IUsable{ void Use();}// 아이템 클래스public class Item : IUsable{ public string Name { get; set; } public void Use() { Console.WriteLine("아이템 {0}을 사용했습니다.", Name); }}강의에서 위와 같이 아이템을 인터페이스로 사용하는 예시를 보고 개인 프로젝트에도 적용해봤다. 그런데 점점 거대해져가는 클래스..!(눈갱 주의) ▼더보기// 아이템 인터페이스 public class IItem { .. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 4. 24. 2024.04.18 TIL - 코루틴(Coroutine) 코루틴이란? //카드를 보드에 펼치기 위한 코루틴 IEnumerator ThrowAboutCard() { //반복문과 지연을 활용하여 카드를 순차적으로 펼친다. for(int i = 0; i < cards.Count; i++) { StartCoroutine(cards[i].GetComponent().Move()); yield return new WaitForSeconds(0.1f); } yield return new WaitForSeconds(1f); //게임을 시작한다. GameManager.instance.bIsPlaying = true; } 저희 팀원이 작성하신 코드인데 이걸 코루틴이라고 하더라구요. 코루틴이 무엇인지 어떻게 사용하는지 찾아봤습니다. 주로 기술 문서를 참고했습니다▼ https://d.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 4. 19. 2024.04.17 TIL - 깃허브 특강, Canvas(Render Mode, UI 순서, 게임종료) 깃허브 특강 스파르타 게임개발 캠프에서 깃허브 특강을 해주셨는데요. 정말 알찬 강의여서 블로그에 정리해뒀습니다▼ 2024.04.17 - [GitHub|Git] - 깃허브 특강 정리 저는 원래 깃허브 데스크탑을 사용하고 있었는데요. 브랜치를 만들고 협업하는 것까지는 했었는데, 더 많은 브랜치들을 만들고 기업에서는 어떻게 관리하는지까지 자세히 알게되었습니다. 그러다보니 제가 이때까지 깃플로우를 간단하게 사용하고 있다는 것을 느꼈고, 앞으로의 프로젝트때는 브랜치를 좀 더 늘려서 사용해보려 합니다. 지금은 깃허브 데스크탑을 사용하지만 추후에 Git 명령어도 익혀서 Git 역량을 좀 더 쌓아가고 싶습니다. 오늘 깃허브 특강 정리하느라 TIL을 3시간동안 썼네요..ㅎㅎ 그래도 한 번 기록해두면 또 볼 수 있으니 기.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 4. 17. 2024.04.16 TIL - SystemManager(매니저들 관리) SystemManager - 매니저들 관리하기 저희 프로젝트에서 Manager가 점점 늘어가서 팀원중 한 분이 SystemManager를 둬서 매니저들을 관리하도록 만들어보겠다고 하셨습니다. public class SystemManager : MonoBehaviour { public static SystemManager instance; DataManager s_DataManager = new DataManager(); public static DataManager data { get{ return SystemManager.instance.s_DataManager; }} SoundManager s_SoundManager = new SoundManager(); public static SoundManage.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 4. 16. 2024.04.15 TIL - 팀 Notion 기록, GitHub, Unity Attribute 팀 노션 기록 노션을 통해 팀원들과 프로젝트 기획, 협업 약속, 하루 계획서 등을 기록했습니다. 협업 시작전 어떤 것들을 정하고 시작하는지 가이드라인이 있어서 수월하게 진행할 수 있었습니다. 또한 팀 노션 기록을 하나하나 채워나가면서 노션 사용법도 익숙해져갔습니다. GitHub 팀원들과의 프로젝트 협업을 위해 GitHub 협업툴로 레포지토리를 생성했습니다. 레포지토리 링크▼ https://github.com/PalPalHaJo/PalPalHaJ 깃허브로 코드를 관리하고 협업을 진행했습니다. 팀원 대부분이 깃허브를 처음 사용하여서 주의사항이나 각종 충돌들을 겪어서 하루가 빨리 지나갔습니다. 그러다보니 어떤분은 열심히 만든 작업물들이 날라가기도 했고, 또 미안해하는 분도 있었습니다. 그래도 서로 탓하지 않고.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 4. 15. 이전 1 2 3 4 5 다음 반응형