zoukankan      html  css  js  c++  java
  • UE4笔记-Plugins插件应用相关记录

    UE4 Plugins插件相关的一些小技巧

    Q.UE4中支持自定义插件在Editor中进行配置:

    主要思路:

    使用UCLASS 和UPROPERTY 的config 宏,UHT会自动将相关的属性值或引用的对象写入到关联的 .ini中.并在在创建时会自动使用Ini的信息进行初始化

      Note:

        根据于UCLASS 的config的配置,会将配置项写入到相应的.ini

        如

    UCLASS(config = Engine, defaultconfig)

        配置信息会写入到DefaultEngine.ini中(不存在的ini会自动创建)..

     

    例子流程:

    Step 1 定义配置类:

    #pragma once
    #include "CoreMinimal.h"
    #include "MySettings.generated.h"
    
    UCLASS(config = Engine, defaultconfig)
    class UMySettings : public UObject
    {
        GENERATED_UCLASS_BODY()
    
    public:
        UPROPERTY(EditAnywhere, Config, Category = "Bind")
            bool MyValue = 0.0f;
    
    };

    Step 2 将Plugin 配置类和UE4 Editor进行绑定:

    /**  */
    void FMyPluginModule::StartupModule()
    {
        RegisterSettings();
    }
    
    /**  */
    void FMyPluginModule::ShutdownModule()
    {
        UnregisterSettings();
    }
    
    /**  */
    void FMyPluginModule::RegisterSettings()
    {
        //绑定
    #if WITH_EDITOR
        if (ISettingsModule* SettingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings"))
        {
            SettingsModule->RegisterSettings("Project", //绑定到Project Settings 下
                                            "Plugins",    //绑定到Plugins分类下
                                            "MyPlugin",    
                                            LOCTEXT("MyPluginSettingsName", "MyPlugin"),// DisplayName
                                            LOCTEXT("MyPluginDescription", "Configure the MyPlugin plugin"),
                                            GetMutableDefault<UMySettings >()
            );
        }
    #endif
    
    }
    
    /**  */
    void FMyPluginModule::UnregisterSettings()
    {
    #if WITH_EDITOR
        if (ISettingsModule* SettingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings"))
        {
            SettingsModule->UnregisterSettings("Project", "Plugins", "MyPlugin");
        }
    #endif
    }

    Step 3 Editor 进行配置:

    Step 4 访问配置类对象:

    const UGizmosSettings *Settings = GetDefault<UMySettings>();

    Q.引用DLL .A第三方类库:

    Q.Plugins和Plugins之间的通讯:

    wait edit

  • 相关阅读:
    机器学习与深度学习资料
    JVM调优实战
    Spark on Yarn下JVM的OOM问题及解决方式
    Centos环境下部署游戏服务器-简介
    新华网,要厚道
    物联网操作系统在运营商领域推广的理论分析
    Android基础之Activity launchMode详解
    《高效程序员的修炼》读后感
    Java科普之算法剖析
    Java科普之基础知识回顾
  • 原文地址:https://www.cnblogs.com/linqing/p/9825795.html
Copyright © 2011-2022 走看看