전체 글 84

내일배움캠프TIL 63일차 트러블 슈팅

참조 문제를 해결하기 위해 Instantiate를 사용했다. MonoBehaviour는 new로 선언하는게 아니라 Instantiate를 이용해서 객체를 생성하고 할당을 해줘야했다. 이렇게 해결을 했는데 문제는 인벤토리와의 연동과 사용에서 나왔다BaseItem 추상클래스를 두고 DamageItem 등등 을 자식클래스로 사용을 했는데 BaseItem에는 데이터와 구현부가 둘다 있어서 혼합된 상태였다. 튜터님도 이상황을 알고 여러 조언을 해주셨고 팀원분과 상의끝에 BaseItem의 데이터를 뺀상태로 구현하기로 하고 수정을 했다. 아이템을 만들때 구현하는 부분과 데이터 부분을 나누는것이 좋다고 조언을 해주셨다. 이렇게 하는게 객체지향적이라고 하셨다.그리고 깃허브브런치를 옮길때 실수로 main으로 가서 모든 ..

개발 TIL 2025.04.22

내일배움캠프TIL 62일차 트러블 슈팅

아이템 제작중 데이터를 불러오는 방법에서 에러가 났다.문제는 BaseItem을 MonoBehaviour를 사용하지 않았는데 사용함으로써 리소스 매니저 부분에 new로 선언했었던 부분에서 문제가 생겼다.시도1. 처음부터 너무 막막해서 튜터님을 찾아감결과 : 아이템의 실제 구현부와 데이터부의 구분이 필요함, 섞여있어서 문제가 생김, 리소스 매니저 부분을 수정해야함시도 2. 계속해서 생각하고 팀원들과 상의 끝에 구현부 부분을 내버려 두고 데이터 변경하는 부분에서 변화를 줌 결과 : 작동은 하지만 오브젝트를 생성하고 그 오브젝트의 프리팹의 스크립트를 참조하는 방법에서 문제가 생김문제 : 참조를 하기때문에 드랍아이템이 여러개 있을 경우 모두 똑같은 아이템이 되어버림 아직 해결은 못했지만 찾아보고 안되면 튜터님을 ..

개발 TIL 2025.04.21

내일배움캠프TIL 61일차 트러블슈팅

아이템 관련 테스트 중NullReferenceException: Object reference not set to an instance of an object TESTESTSETS.Start () (at Assets/02_Scripts/Item/Projectile/TESTESTSETS.cs:15)문제 발생했다. 확인해보니 딕셔너리에서 가져오는 값이 문제였다.시도1. 원래는 밸류값으로 키값을 가져올수 있는줄 알고 그냥사용결과 : 오류 발생시도2. ContainsKey를 사용결과 : 포함되어있는지는 알수 있지만 밸류값을 얻을수 없어서 포기시도3. TryGetValue를 사용결과 : 포함되어있는지도 알수 있고 밸류값도 얻을수 있어서 정상적으로 불러오는 것을 성공했다. 그리고 다시 문제가 발생했는데 파일을 불러..

개발 TIL 2025.04.18

내일배움캠프TIL 60일차 정리

1. 아이템 거리에따른 이동과 범위 구현에 투자했다.2. 아이템 이동에 대한 생각을 아래와 같이 정리했음 던진다 생성한다 생성위치랑 타겟 위치 거리 체크 타겟 위치가 최대사거리 위치보다 길면 던지기 x던지면 그 위치 포함 범위 위치들 확인 후 몬스터 및 플레이어 리스트 확인 use에 넘겨줌사용을 하면 데이터를 불러와서 사거리 및 범위 계산 후 아이템을 보내고 아이템이 해당 위치에 도착하면 useItem 하고 사라진다? 그리고 하다보니 뭔가 머리속으로 꼬이는 느낌이 들기 시작함그래서 튜터님에게 가서 조언을 얻어서 이동하는 로직부터 작성시작함 아이템을 누르고 마우스으로 클릭했을때 아이템의 사정거리보다 크다면 사정거리만큼만 던진다 아이템의 사정거리 안이라면 목표위치에 던진다.그리고 던질때 사정거리 안에 몬스터..

개발 TIL 2025.04.17

내일배움캠프TIL 59일차 트러블 슈팅

Json을 Scriptable Object로 변환하는 과정에서 윈도우 에디터로 커스텀에디터를 만들어서 사용하는 과정에서 윈도우 에디터를 사용시 MonoBehaviour를 상속받지 못해 코루틴을 사용할 수 없는 문제가 발생함시도 1. 찾아보니 EdiorCoroutine 패키지가 있어서 다운받은 후 using Unity.EdiotrCoroutines.Editor; 를 사용결과 : EditorCoroutineUtility.StartCoroutineOwnerless(코루틴) 을 사용해서 코루틴이 정상적으로 실행이됨 JsonUtility는 배열을 단독으로 파싱하지 못해서 배열 Json을JsonUtility.FromJson("{\"items\":" + jsonText + "}") 이런식으로 래퍼클래스를 만들고 배..

개발 TIL 2025.04.16

내일배움캠프TIL 58일차 정리

구글 스프레드시트의 아이템 데이터를 Scriptable Object로 변환하기 위해 여러 에셋들과 많은 글들을 찾아봤지만 뭔가 미묘하게 아쉬워서 직접 순서를 정해 만들어보기로 했다.일단 구글 스프레드 시트의 공유 설정을 보기로 설정했다.그리고 링크의 /d/ 와 /edit 사이의 ID값을 가져오고 변환하고자 하는 Sheet의 이름을 가져왔다.그리고 만든 https://opensheet.elk.sh/시트ID/시트이름 url이 json으로 정상적으로 변환되는지 링크를 브라우저에 넣어 나오는 것을 확인 후 url에 넣어줬다. 그리고 url로 Http GEt 요청을 해서 yield return www.SendWebRequest();를 통해 요청을 보내고 응답을 기다린다.요청의 성공여부에 따라 성공하면 아래 www..

개발 TIL 2025.04.15

내일배움캠프TIL 57일차 정리

아이템 사용관련하여 구조 생각1. 사용은 적이나 캐릭터 리스트를 받아와서 사용하는 방식2. 투척은 한개의 투사체를 만들어서 그곳에 정보를 넣고 그 정보의 기반으로 조건을 설정하여서 동작로직3. 실질적인 구현은 맵구현과 플레이어 구현이 되어야 구현이 가능할듯 하다. 구글시트를 json으로 변경하는 여러 에셋들을 찾아보았고 확실히 이거다 라는 느낌의 에셋이나 git으로 올라온것들은 없었다.그래서 아마 참고는 하는데 입맛에 맞게 변경해서 사용해야 할 듯하다. 그리고 발사체 관련하여 방향을 받고 어디까지 날라가는 로직을 구현을 미리 해야할 것같다.구현 다하고 json관련하여 여러 영상이나 많이 찾아보고 구현을 시도해 봐야겠다.

개발 TIL 2025.04.14

내일배움캠프TIL 56일차 정리

이미지 저장하고 불러오는 방법을 구현1. 아이템 데이터에 스프라이트 리소스 파일 경로 작성 2. 아이템 던지는 프로젝타일에 스프라이트렌더러 불러와서 데이터 넣어줌3. 작동시 정상적으로 이미지가 들어감4. 이미지가 들어가는데 크기 조정할수 있는지 확인해야 함 구글 스프레드시트를 Json으로 변환하고 스크립터블 오브젝트로 변환하는 작업을 에셋이 있어 깔고 확인주말간 코드 분석 후 알맞게 조정해야할듯 함

개발 TIL 2025.04.11

내일배움캠프TIL 55일차 트러블 슈팅

BaseItem이라는 추상클래스를 업캐스팅해서 업캐스팅이 됬는지 확인해보기 위해서 인스펙터 창에 뜨는지 확인해봤는데 뜨지않았다. 시도 1. 혹시 몰라 BaseItem에 [SerializeField]를 사용해봄결과 : 똑같이 안뜸시도 2. 추상 클래스에 [System.Serializable]을 BaseItem에 사용해봄결과 : 똑같이 안뜸, [ System.Serializable ]은 클래스가 직렬화 되지 않을경우 Unity인스펙터에 안뜬다고 해서 사용한다고 사용했지만 똑같이 안뜸시도 3. 찾아보니 추상클래스는 인스펙터창에서 나오지 않는다고 해서 결국 자식클래스의 매서드가 실행되는지 확인해봄결과 : 정상적으로 매서드 호출함 추가적으로 데이터를 string에서 int로 바꾸는 과정에서 int에는 null값이..

개발 TIL 2025.04.10

내일배움캠프TIL 54일차 트러블 슈팅(현재 진행중)

프로젝트 중 아이템 제작에 관하여 코드 구현시도를 했다.아이템 제작은 재료들을 제작창에 올리면 해당재료들에 맞는 레시피가 나와 제작하는 방식이다.처음에는 예외처리로 레시피를 판별해서 재료들에 맞는 레시피를 구하는 방식을 생각했다.그러나 아래와같이 엄청 길고 노가다 하드코딩이 나와 하다가 중간에 이건 아닌것 같아 멈추었다. 그래서 찾아보다가 아이템id를 키값으로 재료들의 id값을 string으로 join해서 키값으로 만드는 것을 생각했다.위 방식으로 하니 코드가 훨씬 간단하게 줄어들었다. 아직 미완성이다. 레시피들을 받아와서 재료들을 모두 더한 string값으로 만들어서 Dictionary로 만들어서 저장하고그 키값과 받아오는 재료들의 id들을 다 string값으로 만들어서 키값을 만들고 레시피의 Dict..

개발 TIL 2025.04.09