TIL 102

2024 11 06 TIL

이번 프로젝트에선 플레이어의 위치와 체력,기력 등의 상태요소를 기록하여 저장할 수단이 필요하여 Json을 활용하고자 하였습니다. 하지만 프로젝트의 막바지에 하려니 저장해야하는 양이 방대한 것에 비해 설계가 힘들어 Player의 위치값과 상태값을 저장하는 것을 구현하는 것까지만 해보고 프로젝트에 적용하는 것은 보류하게 되었습니다. 그렇다고 해도 직렬화와 역직렬화를 직접해보면서 다음 프로젝트에서 써볼 발판을 마련하였다 생각하며 조금만 정리해봅니다. (발표준비 해야함)[Serializable]public class PlayerDB{ public string name; //데이터 파일 이름 public List Conditions; //플레이어 현 상태 값 public float position..

TIL 2024.11.06

2024 11 05 TIL

오늘 TIL은 간략히 정리해보고 새로 배운 내용을 바탕으로 먼저 구현해보러 가본다. 오늘 한 실수 :  쓰임을 마치고 비활성화 된 오브젝트를 다시 풀로 회수하고 싶어 Instatiate로 복제된 프리팹의 이름을 가져와 다시 딕셔너리의 큐에 넣어주는 코드를 작성하던 중 Replace 를 사용해도 제대로 (Clone) 이 지워지지 않는 것을 봐서왜 그러지 했는데 다시 이름안에 넣어주어야 한다는 것을 잊었다.  알고리즘 문제좀 많이 풀어봐야 할것같다.  Resource[] objects = GetComponentsInChildren(true); //오브젝트의 하위 게임오브젝트들을 가져옴 true를 쓴 이유는 비활성화 된 오브젝트를 찾기 위해 foreach (Resource obj in objects) { ..

TIL 2024.11.05

2024 11 04 TIL

오브젝트 풀링과정에서 다른 곳에서 받아온 리스트의 오브젝트를 큐로 집어넣고 다시 큐를 딕셔너리에 넣는데 NullReferenceException이 발생하였다.   해당 오류의 사유는 Start문에 있었다.  ResourceSpwan 이라는 곳에서 List를 받아와서 Queue에 넣고 딕셔너리에 키를 등록하는 것인데  해당 로직이 Start문 안에 있다.  따라서 딕셔너리가 초기화되는 Start문의 입장이 애매해져 딕셔너리가 선언만 되고 빈 껍데기였던 것이다.  public Dictionary> resourceDictionary = new();따라서 딕셔너리를 선언할 때 미리 초기화를 시켜주니 오류가 해결되었다.  개선할 사항메서드를 사용할 땐 동작하는 이름 동사중심 명사중심 이름 짓기 연습 메소드    ..

TIL 2024.11.04

2024 11 01 TIL

오늘 공유된 문제 : 에셋이 분홍색으로 표시되어 보이는 현상 에셋 속성 확인 projectSetting -> Graphics 에서 속성확인 가능 none이면 built in  외에 두가지 속성 속성이 다른 에셋이 들어가면 정상적으로 에셋이 보이지 않음. 따라서 에셋을 사용할 땐 속성을 통일하여 사용하여야함깃에 충돌이 발생하였던 문제 : 머지를 필수적으로 하면서 작업을 진행하도록 하자.  언제 무슨 상황이 일어날지 모르기에 어제 진행하였던 스크립트에 실행순서가 꼬이는 문제가 발생하여 수정하였고UI 는 크게 상속이 필요하지 않을 것 같다는 피드백을 받아 CondtionUI에 UI를 채우는 대상을 설정할 수 있도록 하여수정완료하였다.  또한 굳이 UIData 스크립트를 쓸 필요가 없다는 피드백으로 스크립트가 ..

TIL 2024.11.01

2024 10 31 TIL

이번 팀 프로젝트에서 선택한 과제 유형은 서바이벌 게임이다.  선택한 사유는 별이 세개긴 하지만 필수구현 같은 경우강의에서 배운 내용을 토대로 하면 문제가 없을 것 같고 또한 4명 모두 서바이벌 게임에 대한 공부를 희망하기에만장일치로 택하게 되었다. 오늘 내가 맡은 것은 체력 , 스테미나 등등 플레이어의 상태요소를 구현하는 것이다. 우선 이러한 상태들을 Condition이라 명명하고 플레이어의 상태를 나타내는 것이기 때문에 Player 폴더에 새로 폴더를 추가하였다.   오늘 작성한 스크립트들을 테스트하기 위해선 UI를 작업해야하는데 아직 UI가 없어 일단 스크립트만 나열해놓고 작동이 되는지는 뒤에 확인하기로 한다.public class Condition : MonoBehaviour { public..

TIL 2024.10.31

2024 10 30 TIL

디자인 패턴은 객체지향 프로그래밍을 할 때 자주 발생하는 문제들을 피하기 위해 미리 만들어진 유형의 패턴을 사용하는 것을 말합니다.디자인 패턴은 협업에서도 의사소통의 수단으로 사용되어 어떠한 문제를 이런 유형의 디자인 패턴으로 해결하여 보자! 로 간결하게 의도를 나타낼 수가 있습니다.하지만 디자인 패턴을 쓰기위해 문제를 만드는 일은 없어야할겁니다. 상황에 따라 디자인 패턴을 적절하게 적용시킬 수 있는 것이 디자인 패턴을 정리해두는 이유라고 생각합니다. 우선 특강에서 본 내용을 바탕으로 TIL 대략적으로 정리하여보고 세부적인 예시 같은 것은 따로 공부하여 정리하는 목적으로 하고자 합니다.  싱글톤 패턴  구현의 목적과 기능 : 핵심 기능에 대한 전역적 접근을 허용합니다.  특정 기능에 대한 연결을 위해 유..

TIL 2024.10.30

2024 10 29 TIL

강의 참고없이 과제 1인칭 화면 구현을 위해선 회전에 대한 이해가 필요하였다.  Rotation은 Position 과 달리 생각하여야 한다.   일단 정확한 이해를 위해 오브젝트 하나를 두고 실험을 해보았다. Rotation을 0 0 0 으로 만들어두고 시작한다. 먼저 X축을 돌려보기로 한다.  X축에 30을 더했을 때 오브젝트가 아래쪽으로 기우는 것을 확인할수 있었다.반대로 -30으로 만들어 주었을 땐  위쪽으로 바라보게 된다.  다음은 Y축을 돌려보았다. 똑같이 30 은 오른쪽, -30은 왼쪽 마지막으로 z축은 90으로 설정하였다. 90일 땐 왼쪽으로 넘어지는 모습  -90일땐 오른쪽으로 넘어지는 모습  왜 이런 결과가 나오냐면 Rotation은 값을 변경하였을 때 해당 값의 축을 회전 시키는 것이다..

TIL 2024.10.29

2024 10 28 TIL

NavMesh.SamplePosition() 메서드의 정보 주어진 위치에 가장 가까운 Mesh 위치를 찾기 위해 사용되는 메서드 여기서 Mesh란 3D 컴퓨터 그래픽스에서 사용되는 용어로 객체의 표면을 구성하는 다각형 집합이라고 합니다.NavMesh 에서는 게임 오브젝트들이 이동할 수 있는 경로와 영역을 정의하는데 사용되는 듯 합니다.일단 이 메서드를 사용하여 설정한 경로위치를 탐색하고 탐색된 오브젝트에 접근할수 있다라고 생각하려합니다.  매개변수 설명Vector3 SourcePosition : 샘플링 시작위치 out NavMeshHit hit : 샘플링 결과를 저장할 변수 float maxDistance : 샘플링할 최대 거리int areaMask :  샘플링할 영역 설정  (NavMesh.AllAre..

TIL 2024.10.28

2024 10 27 TIL

slotPanel을 Transform으로 지정한 이유는 Transform에 위치 회전 스케일 값 뿐 아니라 부모-자식 상태 저장도 포함되어 있기 때문이다. (정보 출처 -https://docs.unity3d.com/kr/2021.3/Manual/class-Transform.html)  GameObject의 자식 Object 갯수를 구하는 childCount 를 써서 SlotPanel 안의 슬롯UI의 갯수를 계산하는 방법슬롯의 공간을 확보하였으니 데이터값을 불러오기 위해 slotPanel.Gechild(i)를 하여 i번째 자식 컴포넌트의 ItemSlot 스크립트 데이터를 받아오는 것 또한 예상치 못한 접근인거같다. 받아온 데이터를 기반으로 index의 값과 선언만 되어있는 UIInventory의 정보를 이..

TIL 2024.10.27

2025 10 25 TIL

강의 진도는 현재 11강 현재 피로한 상태라 오늘은 일찍자고 아침에 일어나서 배운 내용을 다시 정리할 예정이다. 오늘 배운 범위는 광원을 이용하여 낮과 밤을 구현 하는 것과 인터페이스의 활용 레이캐스트를 사용하여 물체와 상호작용 구현등을 배웠고 내일 진도를 나가기 전 애니메이션 커브관련 내용을 따로 정리하면서 기능을 다시 살펴보아야 다음에 사용할 때 어려움이 없을 것 같다.

TIL 2024.10.25