免费国产网站_秋霞午夜一区二区三区视频_99热在线看_日韩精品久久一区二区_午夜看一级毛片_天天鲁在视频在线观看

  • UE4開發(fā)插件流程

    2017/7/4??????點擊:


    1. 直接從Editor中生成一個空的插件模板
    2. 關(guān)掉vs,右鍵生成一下工程文件,把Plugins掃進去
    3. 打開解決方案開始編寫插件 
    首先把插件的配置文TestPlugin.uplugin件改一下(被這個坑了兩天) 
    這個LoadingPhase的值默認為Default,必須修改為PreDefault,不然重啟Editor會報關(guān)聯(lián)不上插件源碼的錯誤,切記! 

    修改編譯模塊配置TestPlugin.Build.cs文件,c#文件 

    詳細代碼,里面有注釋 
    using UnrealBuildTool;
    using System.IO; //路徑獲取需要用到IO


    public class TestPlugin : ModuleRules
    {
        private string ModulePath //當(dāng)前TestPlugin.Build.cs文件所在的路徑
        {
            get { return Path.GetDirectoryName(RulesCompiler.GetModuleFilename(this.GetType().Name)); }
        }


        private string ThirdPartyPath //這個插件引用的第三方庫的目錄
        {
            get { return Path.GetFullPath(Path.Combine(ModulePath, "../../ThirdParty/")); }
        }


        private string MyTestLibPath //第三方庫MyTestLib的目錄
        {
            get { return Path.GetFullPath(Path.Combine(ThirdPartyPath, "MyTestLib")); }
        }


        public TestPlugin(TargetInfo Target)
        {
            PublicIncludePaths.AddRange( //公有文件搜索路徑
                new string[] {
                    "TestPlugin/Public"
                    // ... add public include paths required here ...
                }
                );


            PrivateIncludePaths.AddRange(
                new string[] {
                    "TestPlugin/Private" //私有文件搜索路徑
                    // ... add other private include paths required here ...
                }
                );


            PublicDependencyModuleNames.AddRange(
                new string[]
                {
                    "Core"
                    // ... add other public dependencies that you statically link with here ...
                }
                );


            PrivateDependencyModuleNames.AddRange(
                new string[]
                {
                    "CoreUObject",
                    "Engine",
                    "Slate",
                    "SlateCore",
                    // ... add private dependencies that you statically link with here ...  
                }
                );


            DynamicallyLoadedModuleNames.AddRange(
                new string[]
                {
                    // ... add any modules that your module loads dynamically here ...
                }
                );


            LoadThirdPartyLib(Target); //加載第三方庫
        }


        public bool LoadThirdPartyLib(TargetInfo Target)
        {
            bool isLibrarySupported = false;
            if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32))//平臺判斷
            {
                isLibrarySupported = true;
                System.Console.WriteLine("----- isLibrarySupported true");
                string PlatformSubPath = (Target.Platform == UnrealTargetPlatform.Win64) ? "Win64" : "Win32";
                string LibrariesPath = Path.Combine(MyTestLibPath, "Lib");
                PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath, PlatformSubPath, "TestLib.lib"));//加載第三方靜態(tài)庫.lib
            }


            if (isLibrarySupported) //成功加載庫的情況下,包含第三方庫的頭文件
            {
                // Include path
                System.Console.WriteLine("----- PublicIncludePaths.Add true"); 
                PublicIncludePaths.Add(Path.Combine(MyTestLibPath, "Include"));
            }
            return isLibrarySupported;
        }
    }


    寫個自定義的char – TestChar,繼承自Character 
    先看下文件結(jié)構(gòu),需要藍圖可見的必須丟到Public下 

    先修改預(yù)編譯頭文件TestPluginPrivatePCH.h,必須包含CoreUObject,不然編譯不過,切記!

    #include "TestPlugin.h"

    // UObject core
    #include "CoreUObject.h" //默認是不含這個的

    // Actor based classes
    #include "GameFramework/Character.h" //包插件中所有用的的引擎類都丟到這里來


    頭文件,正常編寫自定義的類一樣
    #pragma once
    #include "GameFramework/Character.h"
    #include "TestChar.generated.h"
    UCLASS()
    class ATestChar : public ACharacter
    {
        GENERATED_BODY()


    public:
        // Sets default values for this character\'s properties
        ATestChar();


        UPROPERTY(EditAnywhere, Category = "Test Char")
            int32           mAge;
        UPROPERTY(EditAnywhere, Category = "Test Char")
            FString         mName;
    };


    //cpp文件,包含的是預(yù)編譯文件和類的頭文件
    #include "TestPluginPrivatePCH.h"
    #include "TestChar.h"
    #include "TestLib.h" //引入的第三方庫的頭文件
    ATestChar::ATestChar() : Super()
    {
        mAge = myPrint("hello world", 123); //第三方庫中的方法
        mName = "yangx";
    }


    第三方庫打成了一個靜態(tài)庫TestLib.lib
    TestLib.h
    #ifndef __TEST_LIB_H__
    #define __TEST_LIB_H__
    #include




    #include


    int myPrint(std::string _name, int _age);
    #endif


    //TestLib.cpp
    #include "TestLib.h"
    int myPrint(std::string _name, int _age)
    {
        return _age + 1000;
    }

    4. 編譯運行,在Editor中create一個Blueprint繼承自這個TestChar類

    5. 拖到場景運行游戲


    主站蜘蛛池模板: 日本中文字幕在线看_精品久久欧美熟妇WWW_亚洲成AV人在线观看无堂无码_黄站在线观看_男人j放进女人p全黄_91国自产拍精品 | 欧美黄色录相_局内人在线_国产无遮挡又黄又爽免费网站_国一区二区在线观看_日韩激情毛片_视频一区二区三区中文字幕 | 最新国产在线_丰满少妇高潮惨叫在线观看_福利亚洲_欧美成人r级一区二区三区_久久精品一区二_日本a在线观看 | 草免费视频_国产欧美日韩免费一区二区_国产黄色观看_久久国产精品久久_人人草人人干_久久免费视频一区二区三区 | 欧美亚洲日本在线观看_青青操91_黄色一级免费在线观看_亚洲AV无码一区二区三区鸳鸯影院_水蜜桃yy8848私人视院_国内偷拍第一页 | 97久久精品国产_大又大又粗又硬又爽少妇毛片_国产精品午夜在线观看_无码AV综合AV亚洲AV_97视频资源_91免费视频软件 | 亚洲精品55夜色66夜色_youjizz亚洲_久草加勒比_久久久三级视频_玩两个丰满老熟女久久网_午夜影视一区二区 | 全免费a级毛片免费看视频免费下_亚洲高清日本_一区二区三区性视频_avman最新地址_国产日本视频一区二区_欧美日韩日本国产 免费无码av一区_97超碰免费人妻中文_在线观看91精品国产网站_波多野结衣AV在线无码中文观看_a级黑粗大硬长爽猛出猛进_亚洲日韩欧美在线一区二区 | 在线视频h_五级黄毛片_亚州综合图片_亚洲我不卡_精品国产一区在线_www.久久婷婷 | 亚洲AV网一区二区三区_日日干视频_黄色爱爱_www免费在线观看_久久妇女高潮几次MBA_亚洲一区二区三区在线观看免费 | 再深点灬舒服灬太大了添少妇字幕_免费看一区二区三区四区_成人免费播放视频777777_北条麻妃一区二区三区在线_国产精品久久久久久久竹霞_在线国产一区 | 白石茉莉奈在线一区二区三区_精品专区_草草影院2022成人免费视频_性夜久久一区国产9人妻_久久久久久中文字幕有精品_成人黄色视频播放1 | 99久久激情视频_狼友AV永久网站免费观看孕交_免费A级毛片在线播放不收费_91在线导航_17c在线观看免费视频播放_午夜福利在线观看老司机 | 91午夜视频在线观看_a久久久久_亚洲中文字幕无码天然素人在线_老王亚洲AV综合在线观看_国产无套精品久久久久久_草久久影院 | www.69国产_巨尻av_欧美大黄免费观看_亚洲精品午夜在线_中文字幕第90页_456亚洲人成在线播放网站 | 紧身裙女教师波多野结衣在线观看_久久亚洲私人国产精品_天天都色视频_日韩精品视_九九av在线_国产大片一区二区 | 国产精品视频在线观看免费_欧美黑人群一交_国产欧美一区在线_久久性视频_麻豆成人久久精品二区三区免费_无码日韩精品国产av | 国产一区二区三区视频在线观看_国产91对白在线观看九色_1024精品久久久久久久久_国产二区三区四区_欧美91片_99久久精品国产亚洲 | 国产农村一级特黄α**毛片_精品一区二区三区四区五区_亚洲一区视频在线播放_日本丰满的人妻HD高清在线_日韩高清专区_日本免费网站大全视频 | 久久国产精品一区二区三区四区_亚洲最大中文字幕_av黄色成人_亚洲欧美自拍偷拍视频_av在线播放网站_中国少妇热妇xxxxxxxxx | 亚洲国产成人av好男人在线观看_2024国产三级精品最新在线_欧美精品网_久久免费99_一本色道久久综合亚洲精品_99精品99 | 伦一理一级一a一片_av亚洲av影院av天堂_日本三级在线观看网站_国产AV国片偷人妻麻豆郑州公司_亚洲免费二区三区_免费看片一区二区三区 | 成人免费看AA片_欧美日韩激情_69热视频在线观看免费自拍_日韩精品网站在线观看_2022中文字字幕久亚洲_欧美熟妇性xxx交潮喷 | 久久99国产精品成人_红杏网站永久免费视频入口_美女视频黄的_白丝无内液液酱视频在线观看_无码专区中文无码野外_在线成人国产天堂精品av | 97久久精品无码一区二区_久久丫亚洲一区二区_99久久一区二区_日本中文字幕在线观看全_亚洲成色综合网站yy_爱爱爱视频免费看 | 国产精品福利社_西西人体大胆444www高清大但_91久久国产综合久久_伊人久久五月丁香综合中文亚洲_正在播放亚洲_久久成人免费日本黄色 | 久久久穴_九九九九免费视频_西西人体44www大胆无码_日韩精品在线看_日韩女同一区二区三区在线观看_斗破苍穹第三季免费观看 | 操一操日一日_亚洲午夜无码久久久久蜜臀av_精品无码中文视频在线观看_伊人免费入口_亚洲嫩模一区二区三区_久草人体 | 玩弄少妇高潮ⅹxxxyw_国产精品无码无片在线观看3D_av网站在线播放_樱花草视频WWW_妖精视频亚洲欧美日韩美女_欧美综合在线观看 | 最近国产精品视频_永久黄色网_作爱视频免费观看_gg在线精品视频_9色在线_99国产精品欧美一区二区三区 | 国产亚洲AV片在线观看16女人_好男人社区影院WWW_午夜免费高清视频_日韩看人人肉肉日日揉揉_小草成人免费视频_婷婷色五月综合久久 | 伊人久久综合无码成人网_男人操女人的视频网站_日韩永久免费_小明看国产_中文字幕本久久精品一区_国产3级在线观看 | 亚洲国产精品VA在线观看黑人_亚洲国产欧美在线人成aaaa20_国产精品久久久久一区二区_国产无套码AⅤ在线观看在线播放_中文字幕久久久人伦_人妻少妇AV无码一区二区 | 人人舔人人干_中文字幕第一页在线播放_欧美日韩精品一区二区三区在线_亚洲国产精品久久久天堂不卡_免费骚视频_成人h动漫精品一区二区 | 精品国产自在精品国产浪潮_白丝尤物小仙女自慰网站_久久人妻AV中文字幕_鲁片一区二区三区_久久久精品日本一区二区三区_国产精品一站二站 | 99久久激情视频_狼友AV永久网站免费观看孕交_免费A级毛片在线播放不收费_91在线导航_17c在线观看免费视频播放_午夜福利在线观看老司机 | 爱爱一区二区三区_美女黄色一级毛片_国精品午夜福利视频不卡757_亚洲精品久久久9婷婷中文字幕_亚洲成av人片在线观看天堂无码_天堂av无码av一区二区三区 | 51国产午夜精品免费视频_午夜青青草_一级黄片毛片_亚洲第一视频在线播放_黄色国产_成人自拍网站 | 亚洲一区二区三区精品在线_美女网站视频一区_中文字幕黄网_青娱乐毛片_激情综合色五月丁香六月欧美_国产精品羞羞答答xxdd | 在线观看视频精品_1313午夜精品理论片蜜桃网_国产另类在线视频_美女张开腿让男人视频_国产性爱自拍av_亚洲永久精品免费www | 熟女乱牛牛视频在线观看_国产成人精品午夜视频免费_亚洲精品美女网站_亚洲一区二区三区无码_欧美精品aaaa_国产精品久久777 |