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

  • UE4實(shí)現(xiàn)簡單的插件開發(fā)VS2015

    2017/8/8??????點(diǎn)擊:

    1. 從Editor中生成一個(gè)空的C++插件模板

    2. 關(guān)掉vs,右鍵生成一下工程文件,把Plugins掃進(jìn)去

    打開解決方案開始編寫插件,插件加進(jìn)來了 

    3. 編寫插件
    首先把插件的配置文TestPlugin.uplugin件改一下(被這個(gè)坑了兩天) 
    這個(gè)LoadingPhase的值默認(rèn)為Default,必須修改為PreDefault,不然重啟Editor會(huì)報(bào)關(guān)聯(lián)不上插件源碼的錯(cuò)誤,切記! 


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


    詳細(xì)代碼,有注釋 !
    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 //這個(gè)插件引用的第三方庫的目錄
        {
            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))//平臺(tái)判斷
            {
                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;
        }
    }

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


    先修改預(yù)編譯頭文件TestPluginPrivatePCH.h,必須包含CoreUObject,不然編譯不過,切記!
    #include "TestPlugin.h"
    // UObject core
    #include "CoreUObject.h" //默認(rèn)是不含這個(gè)的
    // 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";
    }

    第三方庫打成了一個(gè)靜態(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. 編譯運(yùn)行,在Editor中create一個(gè)Blueprint繼承自這個(gè)TestChar類


    5. 拖到場景運(yùn)行游戲

    6.WONGLOVE數(shù)據(jù)手套的UE4插件類似于上述方法, 如果您是WONGLOVE用戶,可以聯(lián)系我們索取該插件程序。


    主站蜘蛛池模板: 免费看a级黄色片_国内午夜无码不卡在线观看_欧美人与禽Z0ZO牲伦交_91精品国产综合久久久久_国产小视频在线_精品少妇无码AV无码专区 | www亚洲人av.cc.com_久久性综合_精品入口麻豆传煤_久操线在视频在线观看_在线亚洲免费_国产精品一区二区三区免费看 | 国产精品毛片在线_a级高清免费毛片av_欧美一极XXXXX_国产永久在线视频_99热这里只有精品免费观看_亚洲18色成人网站www | 午夜影院性生活_成人小视频在线免费观看_亚洲精品一线_99久久免费观看_七龙珠z普通话国语版在线观看_AV不卡秒播在线观看 | 国产免费无遮挡在线观看视频_在线观看视频二区_中文字幕第十一页_国产精品成人片在线观看_www.91成人_国产成人亚洲综合色婷婷秒播 | 蝴蝶视频成人免费_日韩一区二区三区免费播放_特级毛片三a级毛片免费_麻豆一区二区三区四区精品蜜桃_午夜dj影院_国产九九九视频 | 美女诱惑视频_亚洲欧洲自拍拍偷综合_午夜免费无码福利视频麻豆_国产中文字幕精品在线观看_亚洲成熟丰满熟妇高潮XXXXX_999re5这里只有精品 | 高清国产免费_a视频v在线_久久女人视频_在线观看国产精品AV_91麻豆产精品久久久_国产精品99久久久久人中文网介绍 | 亚洲综合成色_国产成人AV在线免播放观看新_国产偷∨国产偷∨精品视频_欧美日韩亚洲色图_国产h在线看_国产日韩麻豆 | 婷婷四虎东京热无码群交双飞视频_好大好硬好爽免费视频_亚洲AV男人的天堂网址在线观看_成人午夜天_国产成人免费9x9x_国产伦精品一区二区三区免费优势 | 历劫俏佳人在线观看_琪琪理论_免费av网址观看_韩国精品一区二区无码视频_亚洲成A∧人片在线播放黑人_专干老熟女300部 | 亚洲欧美在线综合图区_一个人看的www在线观看免费_国产88久久久国产精品免费二区_一级片看看_2021国产在线视频_国产精品一级黄色片 | 黄色一级理论片_国产精品午夜福利片不卡_中文永久在线_国产男人的天堂_亚洲444eee在线观看_国产亚洲一区二区在线观看 | 99国精产品一区一区_欧美一级黄色片免费看_亚洲色欲在线播放一区_快穿妲己高H荡肉呻吟NP_亚洲欧美精品伊人久久_综合久久中文字幕 | 香蕉久久精品日躁夜夜躁我_亚洲小说区图片区都市_在线免费看91_午夜视频观看_亚洲影院久久久av天天蜜桃臀_欧美第一精品 | 亚洲精品一级片_福利片在线_亚洲a级在线观看_国产伦精品一区二区三区精品视频_日xxxxx_亚洲成a人v欧美综合天堂 | 超碰在线看_91综合在线_youbbb国产在线视频_亭亭五月天色网_丁香五月亚洲综合在线_奇米影视7777777 | 欧美性猛交免费看_日韩免费小视频_最新国产亚洲亚洲精品a_三级影院在线观看_免费一级男女裸片_亚洲综合久久一区二区 | 真实国产乱子伦在线视频_女人来高潮水多视频_亚洲天堂字幕_少妇被粗大的猛烈进出免费视频_久久久成人免费视频_毛片A级放荡的护士 | 国产高清精品在线_人人搞人人爽_日韩精品一区二区视频_kendralust性潮喷hdbrazzers_色综合色狠狠天天综合色_日韩不卡一级三级片免费 | 日韩精品一卡二卡_亚洲精品免费播放_日本极品少妇_性欧美xxxx乳_久久久久一区二区_亚洲AV国产爽歪歪无码 | 欧美国产成人精品一区二区三区_铠甲勇士在线观看_av狠狠干_欧美交换配乱吟粗大25P_日韩v片_欧美成人无码视频午夜福利 | 亚洲精品97久久久babes_欧美九区_老色鬼久久亚洲AV综合_蜜月va乱码一区二区三区_91视频91色_特大巨黑吊xxxx高潮 | 777色婷婷_久久伊人中文_日韩1区_国产视频2_成人电亚洲在线_看全黄大色黄大片美女人 | 黑人一区二区三区四区五区_www.久久久久_无码aⅴ精品一区二区三区_伊人久久综合成人网_国产最新在线_手机看片日韩人妻少妇 | 无码久久精品国产亚洲AV影片_欧美一级淫片丝袜脚交_午夜三级毛片_亚洲av久久无码精品影视_国产精品嫩草影院久久_久久综合久色欧美综合狠狠 | 亚洲男人精品_国产成人青青热久免费精品_麻豆av在线免费看_久久精品国产亚洲av麻豆色欲_久久黄色一级视频_成人a大片在线观看 | 久久久穴_九九九九免费视频_西西人体44www大胆无码_日韩精品在线看_日韩女同一区二区三区在线观看_斗破苍穹第三季免费观看 | 亚洲视频网站在线_人妻丰满熟妇AV无码区不卡_销魂美女一区二区_18禁美女黄网站色大片免费观看_亚洲成年网_国产一区二区视频免费观看 | 欧美日韩视频在线第一区_中文字幕第2页不卡_久久9999免费视频_久久久久久一级_久久久综_亚洲永久字幕 | 亚洲久久_国产一区二区三区四区老人_噜噜久久噜噜久久鬼88_一个人免费视频观看在线www_日韩一卡2卡3卡4卡新区亚洲_国产精品久久久久久久久丝袜 | 国产精品日韩欧美亚洲另类_波多野42部无码喷潮在线_艳妇荡女欲乱双飞两中年熟妇_精品视频入口_久久国产精品美女_亚洲全部无码中文字幕 wwwav在线播放_久久久久9999亚洲精品_久久大屁股少妇_乱中年女人伦AV二区_亚洲精品aaaaa_亚洲成人在线免费观看 | 精东天美麻豆果冻传媒mv_国产精品自拍小视频_久久精品日产第一区二区三区的特点_东京av在线_精品无码成人片一区二区98_亚洲一区二区在线 | 国产毛A片啊久久久久久按摩_默杀在线观看_久久精品伊人_国产偷V国产偷∨精品视频_国产综合在线看_97免费国产 | 天天爱夜夜操_成年人在线免费播放_日本你懂的_两个女人互添下身视频在线观看_日日摸天天摸人人看_日韩精品免费在线 | 5x社区未满十八在线视频_和岳每晚弄的高潮嗷嗷叫视频_国产精品19p_aaa色视频_91免费福利_99久久久精品 贪婪欲望之岛在线观看_1769免费视频在线观看_免费aa毛片_久久精品在线观看视频_亚洲性爱之日本精品视频_亚洲欧美日韩综合aⅴ | 久久精品动漫一区二区三区_日本成人免费在线视频_欧美nikkibenz办公室hd_国产精品亚洲综合一区_精品升子伦一区二区三区_国产交换配偶在线视频 | 国产精品一级_大地资源在线观看中文第二页_亚洲人成网站在线播放vr_纯肉浪货高H调教SM_无码精品国产VA在线观看_男女啪啪高清无遮挡免费 | 久青青在线观看视频国产_亚洲卡一卡二新区永久时长_成人免费福利视频_午夜激情视频_性视频一区二区_91theporn国产在线观看 | 中文字幕理伦午夜福利片_天天操天天干天天_欧美性生交xxxxx_aaaa一级毛片_免费无码国产国模线观看_国产成人乱色伦区 | 久久精品无码一区二区日韩av_精品一区二区三区中文字幕_av完全免费在线_亚洲永久免费精品_婷婷激情五月AV在线观看_天天干天天操av |