UE 读取INI文件

2022-05-09  本文已影响0人  SilenceTT

创建C++文件

image.png

文件类型选择

image.png

首先新建一个C++类型的Blueprint Function Library。建好后会自动打开VS(我这里新建时用的默认名字MyBlueprintFunctionLibrary)

MyBlueprintFunctionLibrary.h中代码如下

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

#pragma once

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "MyBlueprintFunctionLibrary.generated.h"

/**
 *
 */
UCLASS()
class TESILIAN_API UMyBlueprintFunctionLibrary : public UBlueprintFunctionLibrary
{
    GENERATED_BODY()


public:
    UFUNCTION(BlueprintCallable, Category = "MyCreate")
        static void GetLocalIP(FString& TheIP, FString& ThePort);
}; 

MyBlueprintFunctionLibrary.cpp中代码如下

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

#include "MyBlueprintFunctionLibrary.h"

void UMyBlueprintFunctionLibrary::GetLocalIP(FString& TheIP, FString& ThePort)
{
    if (!GConfig)
    {
        //GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT("return")));
        return;
    }

    GConfig->GetString(TEXT("UDP"),TEXT("ServerIP"),TheIP,GGameIni);
    GConfig->GetString(TEXT("UDP"),TEXT("Port"),ThePort,GGameIni);
    //获取其他类型的同理

    FString::Printf(TEXT("C++ Print")));
} 

保存,然后再UE中编译 ,一定要编辑,等待编辑成功

image.png

编译成功之后,我们就可以在蓝图中调用这个节点了,请注意.h文件中我们自定义了一个叫"MyCreat[图片上传中...(image.png-753f5f-1651912053278-0)]
e"的Category,在蓝图中可以在这个类下面找到我们封装好的节点


image.png
image.png

就可以调用了,注意:如果是打包成EXE文件的话,请在打包之后先运行一次程序,然后会自动在WindowsNoEditor\项目名称\Saved\Config\WindowsNoEditor下生成一个Game.ini,我们把需要的信息放在里面就好了,如下所示


image.png

如果没有就自己写下


image.png

有时蓝图中需要添加self指向,如下图,可以注册对应函数类,然后进行self接口指向


image.png
image.png
上一篇 下一篇

猜你喜欢

热点阅读