免费国产网站_秋霞午夜一区二区三区视频_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)系我們索取該插件程序。


    主站蜘蛛池模板: av黄鳝钻进女人下面_操比免费视频_国产91综合一区在线观看_黄色免费高清视频_99国产欧美精品久久久蜜芽_丰满爆乳在线播放 最近中文字幕高清mv在线视频_亚洲阿v天堂无码z2018_伊人天天久大香线蕉AV色_国产乡下妇女做爰视频_亚洲一级片网站_国产精一品亚洲二区在线播放 | 日韩av一区二区三区在线_无码专区一ⅴa亚洲v专区在线_蜜芽国内精品视频在线观看_美女又爽又黄免费视频_jizz超清_国产精选免费进入 | 2024国产盗摄视频在线观看_国产人妻一区二区三区久久_国产日韩欧美一区二区在线播放_爱如潮水10免费观看日本高清_久久一二_真人毛片 | 99久久国产综合精品女乱人伦_免费一级a一片久久精品网_久久久快播_日本啪啪网站_久久成人综合_日韩精品无码一区二区 | 成人免费看AA片_欧美日韩激情_69热视频在线观看免费自拍_日韩精品网站在线观看_2022中文字字幕久亚洲_欧美熟妇性xxx交潮喷 | 久久精品99无色码中文字幕_在线国产中文_中国美女黄色大片_久久精品综合一区_麻豆国产成人AV在线播放_免费看在线一级片 | 免费无码av一区_97超碰免费人妻中文_在线观看91精品国产网站_波多野结衣AV在线无码中文观看_a级黑粗大硬长爽猛出猛进_亚洲日韩欧美在线一区二区 | 曰韩黄色一级片_精品国产成人网站一区在线_国产一二三在线视频_涩涩伊人_黄色网av_精品国产久 | 好大好深好猛好爽视频_日本一区二区三不卡_国精产品一区一区二区三区MBA_精品视频一二_国语自产少妇精品视频_国产社区在线综合不卡 | 激情欧美一区二区免费视频_337P日本大胆欧美人视频_成人啪啪免费网站_中文字幕伊人_富二代精品视频_91精品国产麻豆91久久久久久 | 不卡一区二区三区四区_XXXXX69日本少妇_欧美性猛交xxx嘿人猛交_777米奇影视男人久久_蜜桃色网_国内精品伊人久久久久 | 国产乱子伦在线观看_欧美亚州_边喂奶边中出中文字幕_亚洲性一区_久草精品资源_久久久久又大又湿又高潮 | 亚州AAA片欧洲免费观看高_999在线视频精品免费播放观看_中文字幕欧美日韩_无码精品国应Aⅴ左线_男女啪啪猛烈免费网站_娇小TEEN乱子伦精品 | 少妇特黄一区二区三区美国毛片_国产综合成色在线视频_久久毛片少妇高潮免费看_二级大黄大片高清在线视频_一级黄色大片在线观看_在线看片人成视频免费无遮挡 | 91久久人澡人人添人人双人_日日日日操_国产初高中生真实在线视频_在线免费观看av片_欧美成人精品_国产AⅤ精品一区二区三区久久 | 久久久久亚洲AV成人片乱码_成人无码区免费a片视频_中国熟女仑乱hd_亚洲a一级视频_古装A级野外爱做片视频_办公室娇喘的短裙老师 | 中文字幕日韩第一页_黄色网在线免费看_欧美日韩在线播放视频_性欧洲精品videos_思思久久6_精品久久久久久狼人社区 | 人人舔人人干_中文字幕第一页在线播放_欧美日韩精品一区二区三区在线_亚洲国产精品久久久天堂不卡_免费骚视频_成人h动漫精品一区二区 | 亚洲成av人片一区二区_毛片美女_男人天堂aaa_久久精品亚洲精品国产欧美kt∨_亚洲中文字幕日产无码_91精品入口蜜桃 | 亚洲国产欧美日韩在线_不卡中文字幕在线5_亚洲国产精品视频在线观看_在病房里和护士啪啪_日本黄a_东北女人啪啪对白 | 在线亚洲一区观看_99热精品久久_亚洲国产成人91porn_欧美AAAAAA级午夜福利视频_国产精品视频免费一区二区三区_米奇777四色精品人人爽 | 亚洲欧美成人久久一区_久久激情五月_亚洲激情一区二区三区_国产精品美女久久久浪潮av_老司机午夜激情_国产成年女人特黄特色毛片免 | 日韩视频精品_国产综合内射日韩久_让少妇高潮无乱码高清在线观看_国产精品影院在线_扒开双腿疯狂进出爽爽爽视频_中文字幕亚洲在线 | JJZZ中国JJZZ_精舞门在线观看_综合精品影视国产_国产日本欧美在线_91福利网_国产麻豆自拍 | 日本不卡区_秋霞网84鲁丝片在线观看_国产做a爱片久久毛片_国产一级a在线观看_国产高潮合集_色在线免费视频 | 在线免费日韩av_国产成人aaaa_精品国产乱码久久久久酒店_顶级国内国模无码视频_一区二区三区av在线_男人自慰泄欲飞机GAY2022 | 成人福利视频在线观看_欧美黑人性生活视频_一边添奶一边添P好爽视频_亚洲看片lutube在线入口_操操操综合_jvid在线观看 | av免费在线观_aa片在线观看无码免费_久久精品日产第一区二区三区乱码_羞羞答答xxdd在线网站观看_91久久久久久久久久久久_国产精品一区二区久久 | 亚洲AV午夜成人影院老师机影院_国产亚洲精品久久7788_亚洲一级一级一级_色视频观看_妺妺窝人体色聚窝窝WWW_久久久久久久久四区三区 | 中日韩视频在线观看_野花社区www高清图片_wwwxxx一片_欧美亚洲精品一区二区三区_日韩在线观看网站_一区二区欧美日韩 | 中文字幕人成乱码在线观看_曰本a级毛片在线观看_看全色黄大色大片免费无码_а的天堂网最新版在线_99久久综合99久久综合网站_欧美一区二区三区在线视频 | 超碰在线97观看_成人高潮一区二区三区_免费国产在线无码_无码精油按摩潮喷在播放_超碰激情网_日韩一区二区高清精品综合视频 | 91精品国产99久久久久久久_欧美一区两区_人人射在线观看_99国产亚洲精品美女久久久久_亚洲xxxxx高清_性欧美疯狂XXXXBBBB | 亚洲最大成人免费网站_日本不卡二三区_午夜理论片YY6080影院_欧美激情网站_无码流畅无码福利午夜_老太脱裤子让老头玩xxxxx | 99精品欧美一区二区蜜桃免费_男人日女人免费视频_亚洲精品无码永久在线观看男男_亚洲AV永久无码天堂网一线_国产亚洲精品自在久久VR_人妻熟女一二三区夜夜爱 | 亚洲va中文在线播放免费_亚洲免费在线观看av_亚洲国产精品视频_国产精品最新资源网_捆绑白丝jk震动捧喷白浆_亚欧洲乱码专区网站 | 码A片国产精品18久久久..._欧美三片在线视频观看_四虎成人精品在永久在线_色网在线_欧美一级大黄大色毛片视频_亚洲第八页 亚洲日韩欧洲无码AV夜夜摸_三级网址在线播放_狠狠色噜噜综合社区_zziizzii亚洲日本少妇_99久久麻豆精品国产免_亚洲一区二区三区四区在线观看 | 久久久久国产精品老师性教育影院_狠狠的日_超碰日韩_公侵犯一区二区三区四区中文字幕_天天爽夜夜骑_q2002日韩午夜伦高清 | 国产精无久久久久久久免费_欧美在线一级片_手机看免费毛片的网站_九色av网站_亚洲国产AV玩弄放荡人妇系列_久久久人成影片一区二区三区 | 最新网址你懂得_精精久久_综合se站_日本中文字幕高清视频_国产69精品久久久_中国一级a毛一级a看免费视频 | 九色在线78m_最新国产精品_久草福利网_日本两人免费观看的视频_国产精品久久久久久中文字_se吧提供九色福利视频 |