c# 60

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

DOTwen을 사용하면서 DOMove를 사용하면 거리 상관없이 시간에 따라 이동속도가 빠르거나 느리게 변했다.그러나 그것을 바꾸고자 이동속도는 일정하고 거리에 따라 이동시간이 달라지게 하는 방식을 선택했다.그래서 거리 비례이동을 구현하고자 (거리 = 시작점과 목표점의 거리) 를 사용했고Vector2Int.Distance를 사용해서 시작부분과 목표부분의 거리를 구하고 그 거리를 이동스피드로 나눠주니일정속도로 이동하는 아이템을 만들 수 있었다. 오늘은 미흡하지만 내일은 더많은 발전가능한 내용을 채워놓아야 겠다.

개발 TIL 2025.05.07

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

동원 훈련을 갔다와서 3일 TIL을 작성하지 못했습니다.... 문제 : 아이템 생성하는 부분을 변경하고 테스트 해보니 에러 발생시도 1. 아이템 생성하는 로직에 문제가 있는지 확인결과 : 문제 없음시도 2. 아이템 데이터가 제대로 들어오지 않는지 확인결과 : 문제없음시도 3. 플레이어에서 UseItem을 하는 로직 확인결과 : 문제없음시도 4. item.spriteRenderer.sortingOrder = -8000; 부분을 주석처리 후 실행결과 : 정상적으로 동작이 실행됨아이템 타입이 정해지고 사용 혹은 drop일때 스프라이트 렌더러를 초기화하는데 생성만 하기때문에 스프라이트렌더러가 null이였음시도 5. go.GetComponent().sortingOrder = -8000; 로 오브젝트에서 컴포넌트를..

개발 TIL 2025.05.01

내일배움캠프TIL 66일차 배운내용 정리

오늘은 C#에서 람다식의 매개변수로 _(언더바)를 사용하는 관례에 대해 배웠다.예를 들어, 아래와 같은 코드가 있다._input.PC.Move.canceled += _ => MoveInput = Vector2.zero;여기서 canceled 이벤트는 어떤 인자를 전달하지만, 나는 그 인자를 전혀 사용하지 않는다.이럴 때 매개변수 이름을 _로 지정하면, 이 인자는 신경 쓰지 않는다는 의도를 명확하게 표현할 수 있다.이 방식은 코드의 가독성을 높여주고, 불필요한 변수명을 고민할 필요도 없게 해준다. 정리:C# 람다식에서 인자를 사용하지 않을 때는 _를 매개변수로 써서, "이 인자는 무시한다"는 것을 명확히 표현할 수 있다. C#에서 전통적인 switch문과 새로운 switch 식(switch expre..

개발 TIL 2025.04.25

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

1. 아이템 사용, 드랍, 드랍아이템을 먹었을때를 테스트 했고 테스트하니 정상적으로 동작하는 것을 확인했다.2. 아이템 사거리를 받아와서 보여주는 것을 구현하였다.3. 구현은 사거리를 표시하고 마우스 위치에 따라 아이템범위를 표시하고 누르면 사거리 안의 위치를 누르면 범위내에 적이 있는지 판별 없다면 취소 있다면 동작으로 구현시도했다.4. 마우스의 위치에 따른 아이템범위는 인풋이 아직 만들어지지 않아서 넘겼고 사거리 표시와 사거리 안의 위치인지 판별하고 위치가 들어오면 범위내의 적이있는지 없는지 판별해서 아이템사용을 구현하였다.5. 사거리 표시는 아래와같이 보여줬다.6. 사거리 보이게 만든 코드이다. 타일을 불러와서 플레이어 기준으로 아이템 데이터의 범위에 따라 사거리가 표시된다.

개발 TIL 2025.04.24

내일배움캠프TIL 64일차 리펙토링

1. 아이템 구조가 3단계로 나누어져 있는데 Damage아이템인지 판별 후 던져지는 아이템을 생성하고 생성한 아이템에 정보를 가지고있는 클래스와 움직임을 주는 클래스로 만들었었다.2. 그런데 UI쪽 팀원분과 상의하면서 좀 많이 이상해져서 생성하고 정보를 가지는 클래스를 합쳤다. 3. 그리고 계속해서 오랜 고민끝에 연동은 되는데 뭔가 둘다 만족하지 못한 결과물이였고4. 그래서 서로의 수정사항을 가지고 끝마치고 수정을 들어갔다.5. 수정은 DamageItem을 하나의 오브젝트로 생성하는 것으로 변경하였고 하나의 오브젝트 안에 Use나 Drop매서드가 들어가있는것으로 변경했다.6. 드랍할때에는 id를 가지고 so를 찾아서 데이터를 넣어주고 수량도 추가해야한다. 결론 : 아이템 사용, 아이템 드랍, 드랍아이템..

개발 TIL 2025.04.23

내일배움캠프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