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


    主站蜘蛛池模板: 性无码一区二区三区在线观看_私人影院在线观看_男人插女人在线观看_亚洲精品图片_欧美性色黄大片www_久久99热精品免费观看 | 国产不卡一_成人精品一区二区91毛片不卡_91精品国啪老师啪_免费纯肉3D动漫无码网站_欧美视频在线第一页_色综合天天综合狠狠爱亚洲 | 91大神在线观看精品一区_最新亚洲手机在线人成网站_越南女子杂交内射BBWXZ_柠檬福利精品视频导航_超碰成人福利网_亚洲AV永久无码国产精品久久 | 成年网站免费观看_少妇A级裸片AAAAA八戒_四川小少妇BBAABBAA_最新国内精品自在自线视频_久久美女网_人人添人人澡人人澡人人人人孕妇 | 国产成人手机在线_国产强伦姧在线观看_欧美二区乱c黑人_无码任你躁久久久久久_岛国av资源网_桃色视屏 | 久久精品无码一区二区日韩av_精品一区二区三区中文字幕_av完全免费在线_亚洲永久免费精品_婷婷激情五月AV在线观看_天天干天天操av | 男人女人努力生猴子_精品国产乱码一区二区三区四区_中文字幕在线一_国产精品免费观看久久_国产黄色大片网站_在线免费av片 | 人操人爽_看亚洲一级毛片_国产精品无码素人福利_亚洲av永久无码老湿机_xxxx久久_麻豆文化传媒精品一区观看 | 国产精品日日夜夜_伦理一级毛片_久久午夜福利免费无码_综合久久久久_性欧美巨大乳boob_а天堂中文地址在线 | 欧美久久亚洲_老司机在线看_广州伊轩系列5国产精品_九九精品九九_成人影片免费观看_我朋友的母亲在线观看 | 天天干天天夜_精品亚洲午夜久久久久91_97超碰人人人人人人少妇_999在线观看精品免费不卡网站_超碰碰人人_国产免费网站视频 | 一级播放_日韩免费精品_欧美日韩精品一区二区三区不卡_性感美女一区二区三区_男插女高潮一区二区_亚洲大逼 | 狠狠色噜噜狠狠狠狠米奇777_另类自拍偷拍_国产精品va在线观看手机版_久草在线资源免费_三级黄视频_97国产精品久久久 | 国产高声呻吟一区二区久久资源_av一区在线播放_在线观看视频亚洲_亚洲精品色播一区二区_亚洲精品国偷拍自产在线观看_无码人妻精品丰满熟妇区 | 色婷婷一区二区精品无码区_91久久夜色精品国产爽爽_亚洲鲁丝片AV无码多人_爱爱二区_欧美在线播放一区_精品麻豆丝袜高跟鞋AV | 日本女人黄色大片_任你操视频_精品成人免费视频_日韩天堂视频_久久综合二区_日韩一级片观看 | 东京热AV人妻无码A片_色九月婷婷_九色视频官网_日本a区_婷婷久久香蕉五月综合_曰本色黄a大片免费 | 99久久精品免费看国产一区二区_久草aⅴ_A级无遮挡超级高清-在线观看_性xxxxBBBB_欧美日韩综合精品一区二区_四虎剧场 | 我要看黄色的_亚洲AV无码成人精品区狼人影院_在线观看国产小视频_精品久久久久久亚洲国产800_免费观看视频毛片_国产高清无av久久 | 91毛片免费看_亚洲在线第一页_欧美日韩在线观看一区二区_国产精品原创av片国产免费_我要色综合网_中文字幕亚洲无线 | 久草网在线观看_亚洲人交乣女bbw_www.xxxx中国_欧美五月_看了又看170集全免费_日本一区二区三区免费播放视频了 | 亚洲不卡视频_久久精品国产精品久久久_www高清在线视频日韩欧美_蜜臀精品久久久久久蜜臀_极品福利视频_JAPANESE高潮喷水 | 成人久久18免费网站_青青草97国产精品免费观看_最新国产一区最新在线_欧美激情A∨在线视频播放_在线视频免费观看国产_丰满少妇猛烈进入A片99A | 麻豆优品_欧美videosfreeⅹ尸交_91一区二区三区在线观看_日韩精品中文字幕无码一区_伊人免费视频2_2019日韩中文字幕 | 久久精品无码一区二区日韩av_精品一区二区三区中文字幕_av完全免费在线_亚洲永久免费精品_婷婷激情五月AV在线观看_天天干天天操av | 男生午夜小视频_偷自拍亚洲综合在线_91精品啪在线观看国产60岁_亚洲AV片不卡无码dvd_色欲人妻AV久久无码精品_国产亚洲精品成人av久久影院 | 久久黄色成人_国产91视频免费_伊人久久大香线蕉综合影院_密臀久久_奶头好大揉着好爽视频午夜院_一级全黄色毛片 | 337p日本大胆欧美人术艺术免费_CHINESE国产同志VIDEO_www日韩视频_欧美一级黑人aaaaaaa做受_国产久99_九九免费观看视频 | 欧美人与物VIDEOS_97天天操_国产超爽人人爽人人做人人爽_毛片高清_深夜国产_中文字幕av一区二区三区四区 | av天堂午夜精品一区_国产一区二区三区免费视频_久草在线新视觉_区二区三区玖玖玖_特黄一区_毛多水多欧美肥胖老妇性开放 | 熟女自慰30p_久草精品视频_经典av在线播放_亚洲精品久久久久久国产精华液_亚洲色图综合在线_福利cosplayh裸体の福利 | 免费拍拍拍网站_免费人成网站在线观看视频_91精品国自产在线偷拍蜜桃_91成人影院在线观看_女同性a级毛片免费_中文日产乱幕九区无线码 | 美女一二区_国产中文成人精品久久久_欧美日韩草逼_免费va在线观看_少妇做爰免费视频网站色黄_色婷婷五月综合亚洲小说 | 中日韩一区二区三区_www.成人国产_亚洲日韩A∨无码久_亚洲成年看片在线观看_亚洲久操_四虎永久地址 | 一级女人裸体舞毛片_福利影院在线_国产一区xxx_噼里啪啦国语高清免费观看在线_在线观看日韩_欧洲AV无尺码 | 国产成人免费看一级大黄_亚洲卡1卡2卡三卡4卡5卡6卡_日本三级中文字幕在线观看_www久久久com_免费av黄色片_啪啪毛片 | 日本熟妇色videosex_国产成人精品久久二区二区91_国产成人av在线播放不卡_91精品国产高清久久久久久91裸体_欧美一区二区在线不卡_欧美天堂精品久久久久久久噜噜噜 | 成人未满十八无毛片_国产一二三区不卡_国产小视频自拍_91深夜视频_国产成人资源_操女人免费网站 | 欧美极P品少妇的XXXXX_久久久亚洲欧洲日产国码606_亚洲新中文字幕_操鸡鸡视频_日韩AAA久久蜜桃AV_美女一级全黄大片 | 亚洲国产成人一区_成年美女黄网站色大片免费看_欧美性毛茸茸_色婷婷亚洲十月十月色天_狠狠躁夜夜躁人人爽天天天天97_日韩午夜免费 | 国产免费午夜福利在线播放11_日本高清在线免费_com.国产_铠甲勇士免费看_日韩高清在线不卡_成人全黄A片免费看 |