DevLog 17

[HDProject] UGUI Text Mesh Pro Style Applier 에디터 제작

Git : https://github.com/kwon1232/HDProject UGUI에서 Text Mesh Pro를 사용하다보면다른 아웃라인과 색깔을 적용하기 위해서는 매번 새로운 머티리얼을 할당해줘야 한다. Legacy Text 보다 이는 사용하기 번거롭기 때문에,동적으로 머티리얼을 할당하는 코드를 제작하여 해당 프로젝트에 적용하였다. 먼저 TMPStyleMainColor, TMPStyleOutline 클래스를 제작하였다. 해당 클래스들은 구조체처럼 서로 다른 변수의 모음을 담기 위해서 제작하였으며따라서 MonoBehaviour를 상속받지 아니한다. TMPTextStyle 내부에는컬러를 조정할 변수 모음인 TMPStyleMainColor 클래스를 인스턴스화 하여 맴버 변수로 삼고,아웃라인을 조정할 변..

[HDProject]파티 초대 팝업창 포톤 연동 + 왜 포톤을 쓰나요?

Git : https://github.com/kwon1232/HDProject 필자가 Unity엔진에서 Photon 서버를 사용하는 주된 이유는 다음과 같다.빠른 개발 속도Photon Unity Networking(PUN) 패키지를 통해 복잡한 소켓 프로그래밍 없이도 멀티플레이어 기능을 즉시 구현할 수 있다. RPC 호출, 룸 생성·관리, 이벤트 전송 등 기본적인 네트워킹 기능을 API 한 줄로 처리할 수 있다.낮은 레이턴시 및 글로벌 리전 지원전 세계에 분산된 서버 리전을 통해 플레이어가 가장 가까운 리전에 접속하여 레이턴시를 최소화할 수 있다. 게이머의 지역에 따라 자동으로 최적의 리전을 선택하는 기능도 제공된다.매치메이킹·로비·룸 관리 기능이 제공자동 매치메이킹으로 플레이어를 간편하게 그룹화할 수 ..

유니티 포톤서버를 이용한 채팅 시스템 구현완료 파티기능 제작 시작

https://github.com/kwon1232/HDProject GitHub - kwon1232/HDProjectContribute to kwon1232/HDProject development by creating an account on GitHub.github.com 중간에 떠있는 건 파티 시스템 구현 하기 위해 만들어둔 UI이다.오늘은 친구랑 저녁먹고 들어와서 10분정도 밖에 못만져서 아쉽다.내일은 시간 투자좀 해야겠다.

포톤 서버를 이용한 채팅 서버 제작

GitHub : https://github.com/kwon1232/HDProject 📦 ChatManager — 네트워크 채팅 관리 Photon Chat 서버와 직접 통신하고 네트워크 이벤트를 처리하는 관리자 주요 역할Photon 서버 연결 및 인증채팅 채널 구독 / 메시지 송신채널 내의 메시지 수신 및 UI로 전달Photon 채팅 관련 콜백들 처리구조 ChatManager static ChatManager instance ➤ 싱글톤 ChatClient chatClient ➤ Photon 채팅 클라이언트 string chatChannel ➤ 사용할 채널명 ("GlobalChannel") SendMessageToChat() ➤ 채널로 메시지 전송 OnCon..

D2D11HollowKnight - StatePatern을 Class화 하는 장점

FSM은 한 번에 한 가지 상태만 가질 수 있기에상태 변화에 크게A상태 진입 -> A상태 진행 중 -> A상태 탈출 -> B상태 진입이런 순으로 나눌 수 있다.즉, 하나의 상태를 3가지의 상태로 또 쪼갤 수 있는 것이다. State 패턴을 가질 수 있는 클래스와그 3가지 상태를 구분하는 Enum Class를 하나 둔다. enum class EState{ Enter, Exit, Ing, None};class State{public: State(class StateComponent* owner, std::string key, State* val); virtual ~State() {}; virtual void Update() = 0; virtual void LateUpdate() = 0; virtual voi..

Custom Editor - Asset Duplicate Editor 플러그인 생성

해당 Type은 플러그인이 영향을 미칠 콘턴츠의 경로가 결정된다.이것은 게임 코드에 영향을 미치는 플러그인이라면 런타임이 되기를 바라겠지만,이제 내가 만들 건 편집 도구이니까, Editor에 영향을 미치길 바란다.따라서 영향을 미치는 Type을 Editor로 변경해준다.따라서 이 플러그인(모듈)은 로드되는 시기에 결정된다.  이제 LoadingPhase를 기본값으로 설정된 것 대신 사전 기본값으로 변경하자.이제 이 플러그인은 게임 모듈보다 먼저 로드되며,이러한 설정은 내가 만들고자 하는 사용자 정의 편집기 도구에 적합한 설정이다. 사용자 정의 편집 도구의 기능은 총 2가지를 가질 것이다. 첫째는, 애셋의 수를 줄이고 늘리거나 하는 에셋에 대한 작업둘째는 레벨에 올려져있는 액터 자체에 대한 작업이다. 에셋..

Pain Point C++에서 델리게이트같은 함수 만들기

C++에서 델리게이트처럼 이용하려면? 던전 맵에 입장할 때, 카메라와 플레이어가 위에서 아래로 떨어지는 효과를 구현하기 위해, DungeonLevel 클래스는 던전 레벨로 전환하는 순간을 감지해야 한다. 이를 위해 DungeonLevel 클래스의 특정 함수를 외부에서 호출하는 방식으로 전환 시점을 처리할 수 있다. 이러한 구현을 위해 UE5에서 사용했던 델리게이트 방식이 떠올랐다. 이를 적용하기 위해 DelegateManager 클래스를 별도로 만들었다. 구현 방식 DungeonLevel의 EntranceDungeon 멤버 함수를 람다 표현식을 사용하여 DelegateManager에 바인딩했다. 이렇게 함으로써 델리게이트처럼 다른 클래스에서도 DungeonLevel의 함수를 호출할 수 있는 구조를 만들었..