세팅하기
이렇게 c++기반 게임인스턴스 하나 만들어요
맨마지막거가 게임인스턴스입니다.
서드퍼슨맵을 복사해서 로비맵을 생성.
둘이 서로 알아먹기만 할수있게 표시하면됨
맵 &모드에서 게임시작하면 맨처음나오는 맵과 서버가 맨처음 나오는맵을 설정
#pragma once
#include "CoreMinimal.h"
#include "Engine/GameInstance.h"
#include "PuzzlePlatformsGameInstance.generated.h"
/**
*
*/
UCLASS()
class TEST_API UPuzzlePlatformsGameInstance : public UGameInstance
{
GENERATED_BODY()
//c++ 생성자 단에서 초기화
UPuzzlePlatformsGameInstance(const FObjectInitializer& ObjectInitializer);
//언리얼 게임인스턴스 단에서 초기화
virtual void Init();
UFUNCTION(Exec)
void Host(); //호스트
UFUNCTION(Exec) //조인 + 접속아이피
void Join(const FString& Address);
};
// Fill out your copyright notice in the Description page of Project Settings.
#include "PuzzlePlatformsGameInstance.h"
#include "Engine/Engine.h"
UPuzzlePlatformsGameInstance::UPuzzlePlatformsGameInstance(const FObjectInitializer & ObjectInitializer)
{
UE_LOG(LogTemp, Warning, TEXT("GameInstance Constructor"));//생성자 초가화
}
void UPuzzlePlatformsGameInstance::Init()
{
UE_LOG(LogTemp, Warning, TEXT("GameInstance Init")); //인스턴스 초기화
}
void UPuzzlePlatformsGameInstance::Host()
{
UEngine* Engine = GetEngine(); //게임엔진의 현재 인스턴스를 가져움
if (!ensure(Engine != nullptr)) return;
Engine->AddOnScreenDebugMessage(0, 2, FColor::Green, TEXT("Hosting")); //로그띄워줌
UWorld* World = GetWorld(); // 레벨의 현재 레벨을 가져옴
if (!ensure(World != nullptr)) return;
//서버전용 . 서버를 입력한 경로의 맵으로 이동시킴, 클라이언트랑 같이감 서버가 접속중인 클라이언트들의
//플레이어 컨트롤러에서 ClientTravel을 호출함.
World->ServerTravel("/Game/ThirdPersonCPP/Maps/ThirdPersonExampleMap?listen");
}
void UPuzzlePlatformsGameInstance::Join(const FString& Address)
{
UEngine* Engine = GetEngine();
//현재 클라의 플레이어컨트롤러의 첫번째 플레이어 컨트롤러 가져옴
APlayerController* PlayerController = GetFirstLocalPlayerController();
if (!ensure(Engine != nullptr)) return;
//로그
Engine->AddOnScreenDebugMessage(0, 5, FColor::Green, FString::Printf(TEXT("Joining %s"), *Address));
//아이피가 유효할때 호출되면 입력된 아이피주소의 서버로 이동함.
//인텔리센스 빨간줄 무시하셈.
PlayerController->ClientTravel(Address, ETravelType::TRAVEL_Absolute);
}
결과.
'언리얼엔진 > 네트워크' 카테고리의 다른 글
네트워크 모듈추가시 핫리로드+인텔리센스가 개발자를 엿먹이는방법 (0) | 2019.05.20 |
---|---|
서버에서 나오기, 게임종료하기. (0) | 2019.04.15 |
IP를 입력받아서 로컬에 접속하기. (0) | 2019.04.15 |
UMG 셋팅하고 적용하기 (0) | 2019.04.11 |
언리얼 리플리케이트 (0) | 2019.04.06 |