2024/10 4

앵커와 피봇은 가만히 놔두는 게 좋습니다.

이 게시물을 위해 인벤토리 슬롯 UI를 구현 중에 있었다. 원 프리팹에서는 레벨 표시가 없었기에 텍스트 하나를 추가한 후 앵커 프리셋을 이용해 위치를 조정했다. 그런데 웬 걸 실행해보니 난리 부르스가 났다. 앵커와 피봇을 다시 중앙으로 해놓으니 정상적으로 돌아왔다. 웬만하면 앵커와 피봇은 중앙에 두고서 배치하자...

Study/Unity 2024.10.30

[Unity System Programming Pt.1] 7-8주차 - 유저 인벤토리 구현

개요게임에서 인벤토리는 아이템이 수납되는 장소를 일컫는다.* 이번에는 강의에서 언급된 Scroll View의 한계에 대해서 살펴보고, 간단한 필터와 정렬 기능이 들어간 인벤토리를 구현해보고자 한다. 리소스는 강의에서 제공한 것을 그대로 사용하도록 하고 여기서는 핵심 코드에만 집중하도록 한다.* 인벤토리에 대한 자세한 설명이 필요하다면 나무위키를 참고하기를 바란다.Scroll View의 한계Unity로 채팅창과 같이 스크롤링이 필요한 UI 요소를 구현하고 싶다면 Scroll View를 이용하면 된다. Scroll View에 대한 자세한 설명은 이 영상과 UGUI 매뉴얼로 대신한다. Scroll View에는 2가지 아쉬운 점이 있다. 첫 번째는 최적화다. UGUI는 자동으로 Content의 자식오브젝트를 재..

Study/Unity 2024.10.30

UI 이벤트 메소드를 연결 전에 잘 살펴봐야 하는 이유

버튼 이벤트 메소드를 참조해주고 나니 사소한 컨벤션 오류가 있다는 걸 발견했다. 그래서 OnClickSortButton으로 수정하고 실행했는데 버튼이 동작하지 않았다. 그래서 다시 인스펙터로 살펴보니 아래와 같이 되어 있었다.  인스펙터로 참조를 연결해주면서 MissingReferenceException 은 많이 마주했는데, 메소드에서도 이게 일어날줄은 몰랐다.코드 수정을 좀 더 신중히 해야겠다는 생각이 든다. 만약 여러 군데에 참조를 연결했는데 이름 하나 바꿨다고 그 많은 걸 수정한다 생각하면 끔찍하다.

Study/Unity 2024.10.29

이상한 나라의 소켓 옵션

네트워킹 라이브러리를 제작하면서 이상한 오류를 발견했다. 대기 소켓에서 Accept를 처리하려는데 클라이언트의 주소를 얻어올 수가 없었다. 이를 해결하기 위해 임시로 서버를 만든 후 테스트를 해봤다.int main(){ WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); // 1. IOCP 생성 HANDLE iocpHandle = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, NULL, NULL); // 2. 대기 소켓을 만들고 IOCP에 등록 SOCKET listener = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); CreateIoComple..

Study/Game Server 2024.10.25