2022/04/07 로비메뉴 백업

2022. 4. 7. 22:56·Unreal Engine 4/Unreal Engine 4
반응형

헤더

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "../Server/Net_ServerCore.h"
#include "LobbyWidget/W_Interact.h"
//#include "LobbyWidget/W_RMOutline.h"
#include "W_LobbyMain.generated.h"

/**
 * 
 */
UCLASS()
class KANGNAMSQUARE_API UW_LobbyMain : public UUserWidget
{
	GENERATED_BODY()
protected:

	//virtual void NativeOnInitialized() override;
	//virtual void NativePreConstruct() override;
	virtual void NativeConstruct() override;
	//virtual void NativeDestruct() override;
	//virtual void NativeTick(const FGeometry& MyGeometry, float InDeltaTime);

	UPROPERTY(Meta = (BindWidget))
	class UButton* _btn_OpenChat;

	UPROPERTY(Meta = (BindWidget))
	class UButton* _btn_CloseChat;

	UPROPERTY(Meta = (BindWidget))
	class UEditableTextBox* _ET_chat;
/*
	UPROPERTY(Meta = (BindWidget))
	class UW_Interact* _btn_Interact;

	UPROPERTY(meta= (BindeWidget))
	class UW_JumpButton* _Btn_Jump;

	UPROPERTY()
	class UW_IconOutline* Icon_Outline;

	UPROPERTY()
	class UW_RMOutline* RMOutline;

public:
	UPROPERTY()
	class UW_SelectOption* SelectOption;

	UPROPERTY()
	class UW_AccountManagement* AccountManagement;
	*/
public:
	UFUNCTION()
	void Click_OpenChat();

	UFUNCTION()
	void Click_CloseChat();

	UFUNCTION()
	void Committed_Chat(const FText& message, ETextCommit::Type commitType);

public:
	void FindServer();
	bool IsInvalidServer();
	ANet_ServerCore* GetLobbyServer() const;

private:
	UPROPERTY()
	ANet_ServerCore* _lobbyServer;
};

cpp

// Fill out your copyright notice in the Description page of Project Settings.


#include "W_LobbyMain.h"
#include <Components/EditableTextBox.h>
#include <Components/Button.h>
#include <Components/CanvasPanel.h>
#include <Runtime/UMG/Public/Blueprint/WidgetBlueprintLibrary.h>
#include "../Framework/KangnamMain/CC_KangnamMain.h"
#include "../Server/Lobby/Net_lobbyServer.h"
#include <Runtime/Engine/Classes/Kismet/GameplayStatics.h>
//#include "LobbyWidget/W_AccountManagement.h"
//#include "LobbyWidget/W_IconOutline.h"
//#include "LobbyWidget/W_RMOutline.h"
//#include "LobbyWidget/W_Interact.h"
//#include "LobbyWidget/W_JumpButton.h"
//#include "LobbyWidget/W_Option.h"
//#include "LobbyWidget/W_RMOutline.h"
//#include "LobbyWidget/W_SelectOption.h"

void UW_LobbyMain::NativeConstruct()
{
	Super::NativeConstruct();

	//Init
	_btn_OpenChat = Cast<UButton>(GetWidgetFromName(TEXT("_btn_OpenChat")));
	_btn_CloseChat = Cast<UButton>(GetWidgetFromName(TEXT("_btn_CloseChat")));
	_ET_chat = Cast<UEditableTextBox>(GetWidgetFromName(TEXT("_ET_chat")));
/*
	_Btn_Jump=Cast<UW_JumpButton>(GetWidgetFromName(TEXT("_btn_GJump")));

	_Btn_Jump=Cast<UW_JumpButton>(GetWidgetFromName(TEXT("_btn_GJump")));
	_btn_Interact = Cast<UW_Interact>(GetWidgetFromName(TEXT("_btn_Interact")));

	Icon_Outline=Cast<UW_IconOutline>(GetWidgetFromName(TEXT("IconOutline")));
	RMOutline=Cast<UW_RMOutline>(GetWidgetFromName(TEXT("_RMOutline")));
	SelectOption=Cast<UW_SelectOption>(GetWidgetFromName(TEXT("Select_Option")));
	AccountManagement=Cast<UW_AccountManagement>(GetWidgetFromName(TEXT("Account_Management")));
*/	
	//UEditableTextBox
	_ET_chat->SetHintText(FText::FromString(FString(TEXT("Input Comment..."))));

	if (_ET_chat != nullptr)
	{
		_ET_chat->OnTextCommitted.AddDynamic(this, &UW_LobbyMain::Committed_Chat);
	}

	//UButton
	if (_btn_OpenChat != nullptr)
	{
		_btn_OpenChat->OnClicked.AddDynamic(this, &UW_LobbyMain::Click_OpenChat);
	}

	if (_btn_CloseChat != nullptr)
	{
		_btn_CloseChat->OnClicked.AddDynamic(this, &UW_LobbyMain::Click_CloseChat);
	}

	_btn_CloseChat->SetVisibility(ESlateVisibility::Hidden);
	_ET_chat->SetVisibility(ESlateVisibility::Hidden);

	//
	FindServer();
	//
}

void UW_LobbyMain::Click_OpenChat()
{
	_btn_OpenChat->SetVisibility(ESlateVisibility::Hidden);
	_btn_CloseChat->SetVisibility(ESlateVisibility::Visible);
	_ET_chat->SetVisibility(ESlateVisibility::Visible);
}

void UW_LobbyMain::Click_CloseChat()
{
	_btn_OpenChat->SetVisibility(ESlateVisibility::Visible);
	_btn_CloseChat->SetVisibility(ESlateVisibility::Hidden);
	_ET_chat->SetVisibility(ESlateVisibility::Hidden);
}

void UW_LobbyMain::Committed_Chat(const FText& message, ETextCommit::Type commitType)
{
	if (ETextCommit::Type::OnEnter == commitType)
	{
		UE_LOG(LogTemp,Warning,TEXT("%s"),*message.ToString());
		ANet_ServerCore* ProudNetActor = Cast<ANet_ServerCore>(UGameplayStatics::GetActorOfClass(GetWorld(), ANet_ServerCore::StaticClass()));
		Proud::HostID LocalRemoteID = ProudNetActor->_client->GetLocalHostID();
		Proud::RmiContext context = Proud::RmiContext::ReliableSend;
		Proud::String stream = ProudHelper::StringFS2PS(message.ToString());

		if (IsInvalidServer())
		{
			UE_LOG(LogTemp, Warning, TEXT("IsInvalid"));

			_lobbyServer->_lobbyServer->GetProxy()->SendChat(Proud::HostID_Server, context, stream);
		}
		_ET_chat->SetText(FText::FromString(FString(TEXT(""))));
	}
}

void UW_LobbyMain::FindServer()
{
	if (GetWorld())
	{
		_lobbyServer = Cast<ANet_ServerCore>(UGameplayStatics::GetActorOfClass(GetWorld(), ANet_ServerCore::StaticClass()));
		if (_lobbyServer)
		{
			UE_LOG(LogTemp, Warning, TEXT("Success Find lobbyServer"));
			//RMOutline->SetOwner(this);
			//UE_LOG(LogTemp,Warning,TEXT("RM %d"),RMOutline->_lobbyMain);
			//_btn_Interact->SetOwner(this);
			//UE_LOG(LogTemp,Warning,TEXT("inter %d"),_btn_Interact->_lobbyMain);
		}
		else
		{
			UE_LOG(LogTemp, Warning, TEXT("Failed Find lobbyServer"));
		}
	}
}

bool UW_LobbyMain::IsInvalidServer()
{
	if (_lobbyServer)
	{
		UE_LOG(LogTemp, Warning, TEXT("Success"));

		if (_lobbyServer->_lobbyServer->IsConnect())
		{
			UE_LOG(LogTemp, Warning, TEXT("Success Find "));
			return true;
		}
	}
	UE_LOG(LogTemp, Warning, TEXT("Failed"));
	return false;
}

ANet_ServerCore* UW_LobbyMain::GetLobbyServer() const
{
	return _lobbyServer;
}

 

반응형
저작자표시 (새창열림)

'Unreal Engine 4 > Unreal Engine 4' 카테고리의 다른 글

ue4 2022/05/02 tick  (0) 2022.05.02
2022/04/12 백업본  (0) 2022.04.12
2022/03/29 360도 캐릭터 백업  (0) 2022.03.29
OrbitingMovement 컴포넌트 생성  (0) 2022.03.24
계층구조 만들기  (0) 2022.03.22
'Unreal Engine 4/Unreal Engine 4' 카테고리의 다른 글
  • ue4 2022/05/02 tick
  • 2022/04/12 백업본
  • 2022/03/29 360도 캐릭터 백업
  • OrbitingMovement 컴포넌트 생성
숯불돼지왕갈비
숯불돼지왕갈비
  • 숯불돼지왕갈비
    게임 개발 공부기
    숯불돼지왕갈비
  • 전체
    오늘
    어제
    • 분류 전체보기 (302)
      • 학교수업 (165)
      • 취업강의 (6)
      • C++ (49)
        • 코딩 테스트 (4)
      • Unreal Engine 5 (25)
        • MMORPG 개발 (25)
      • Unreal Engine 4 (44)
        • Omak Project (3)
        • Unreal Engine 4 개발일지 (9)
        • Unreal Engine 4 (32)
      • Unity (1)
        • 개발 일지 (1)
      • 수학 (3)
        • 소프트웨어 공학용 수학 (3)
      • DirectX 11 (4)
      • 게임 디자인 패턴 (2)
      • 포트폴리오 (1)
      • 자격증 (1)
        • 정보처리기사 (0)
        • SQLD (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
숯불돼지왕갈비
2022/04/07 로비메뉴 백업
상단으로

티스토리툴바