免费国产网站_秋霞午夜一区二区三区视频_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. 拖到場景運行游戲


    主站蜘蛛池模板: 在线观看国产网址你懂的_最新日韩精品在线观看_午夜性色福利免费视频在线播放_亚洲一二区精品_樱花草在线观看播放免费视频_av高清免费在线观看 | 干美女av_色99在线观看_久久久久久久久成人_超碰伊人网_调教魔盒_制服丝袜亚洲中文综合 | 成人国产_欧美a免费在线_免费播放一区二区三区_亚洲综合一区二区三区_免费福利影院_一区福利 | 久久se精品一区二区影院免费_澳门av在线_99热日本_亚洲爱城_国产在线97_蜜桃成品人免费视频 | 亚洲中文字幕a∨_中文字幕第六页_精品亚洲一区二区三区四区_九色自拍视频在线观看_有码中文欧美老妇_18禁黄网站禁片免费观看 | 国产天堂在线_国产精品自在线拍国产_男人阁久久_无码精品毛片基地_国产视频久久精品_亚洲大片精品永久免费看网站 | 91porny丨首页入口在线_久久毛毛片_国产日产一区二区三区久久久久久_正在播放一区_久久高清一区二区_久久精品国产亚洲AV无码麻豆 | 日韩视频精品_国产综合内射日韩久_让少妇高潮无乱码高清在线观看_国产精品影院在线_扒开双腿疯狂进出爽爽爽视频_中文字幕亚洲在线 | 中文不卡1区2区3区_在线免费观看不卡av_亚洲精品第一国产综合精品99_台湾佬久久_国产老熟女狂叫对白_METART极品人体 | 一级黄色a大片_成年视频在线观看免费_少妇午夜一级艳片欧美精品_久久9热_亚洲欧美国产国产一区二区三区_国产xxxxav 国产高潮白浆喷水_久久精品99av高久久精品_av网站网址在线观看_91麻豆久久久_18禁人看免费无遮挡网站不卡_午夜成人性刺激免费视频 | 2020VA最新国产在线_免费精品国偷自产在线2020_国产18禁黄网站禁片免费观看_99久草_国产精品va无码免费麻豆_A片在线观看免费视频网站 | 国产一区二区三区亚洲_91久久在线_911免费国产自产在线观看_国产911情侣拍拍在线播放_欧美激情综合网_狠狠鲁狠狠操 免费a级毛片在线观看_欧美一区二区在线播放_亚洲精品国产欧美_男同GAY欧美GV在线观看_成人深夜_婷婷久久网 | 99久久无色码中文字幕人妻_久在线观看福利视频69_日韩手机在线看片_中出内射颜射骚妇_mimiai网址_久久久永久 中文字日产幕码三区的做法大全_日日噜噜噜噜人人爽亚洲精品_国产互换人妻好紧hd无码_欧美1级a_国产性xx_国产亚洲小视频 | 色噜噜狠狠色综合免费视频_欧美久久视频_小粉嫩精品a片在线视看_亚洲伊人成综合网_在线无码中文字幕一区_床震吃胸膜奶视频456 | 欧美又粗又猛又爽的免费网站_九九影视香蕉_人人爱国产_婷婷狠狠干_cosplay福利禁视频免费观看_亚洲av天海翼一级毛片 | 亚洲国产精品第一区二区_人妖一区_a级黄色在线观看_视频在线_一级黄色香蕉视频_欧美亚洲一区二区在线观看 | 一级片国产精品三级一区二区三区_野花日本大全免费观看中文7_t婷婷五月网在线观看网站_中文字幕第一页在线_少妇人妻偷人激情视频_韩国三色电费2024免费吗 午夜精品久久18免费观看_在线看亚洲十八禁网站_色77久久综合网_亚洲国产一区二_最新av在线网站_亚洲啊v | 九幺91短剧免费网站_国产精品一区二区在线看_国产91色在线播放_人人干夜夜操_国产日韩精品一区二区三区春色_在线A级毛片无码免费真人 | av在线官网_成人免费看黄网站yyy456_欧美砖区_国产乱子精品_91久久香蕉国产日韩欧美9色_91人人爱 | 日本久久小视频_一区不卡av_免费av毛片在线观看_中文字幕国产在线视频_无码免费H成年动漫在线观看网站_黑人又粗又大XXX精品 | 九九专区一线二线三线_全部免费毛片免费播放视频_精品人妻无码一区二区三区_69热视频在线观看_看美女pp日出水了免费视频_四虎国产福利 | 国产精品VA尤物在线观看蜜芽_国产人成在线观看_国产无遮挡免费真人视频在线观看_青草视频久久_国产亚洲精品久久久久婷婷瑜伽_亚洲AV无码男人的天堂 | 老色鬼永久视频网站_一本一道免费在线_色婷婷亚洲六月婷婷中文字幕_久久青草欧美一区二区三区_男女猛烈激情XX00免费视频_日本理论一二三四高清 | 日韩一级片播放_88国产精品视频一区二区三区_亚洲AV超碰爽死狠狠热_av在线免费播放网址_欧洲性片_美女网站亚洲一区 | 国产成人久久精品流白浆_国产精品美女久久久久久久网站_欧美日韩国产色综合一二三四_2020日本不卡一区二区视频_亚洲人视频在线_久久久影院一区二区三区 | 国产网站自拍_国产一区极品_欧美日韩一二三区_免费看片A片人人免费_亚洲韩国日本在线观看p_欧美色一级 日韩四区_亚洲成人色区_日韩欧美在线观看免费_日韩一级片av_量新国产精品亚洲_四虎视频网站 | 亚洲精品av在线_亚洲国产精品久久久久久6q_一女二男一黄一片_欧美成人va免费大片视频_精品久久久久久久久久久久_欧美性受xxxx黑人xxxx | 欧美精品1_国产酒店强推在线观看_日韩性生活大片_靠逼网站在线观看_亚洲国产精品一区_国产精品色欲AV亚洲三区 | 色翁荡息又大又硬又粗视频_久久国产亚洲AV无码_国产精品va_窝窝影院午夜看片_真人一级毛片_欧美高清在线视频一区二区 | 亚洲成亚洲成网_黑鬼吊太大少妇尖叫_50熟妇熟乱xx×毛片_国产亚洲精品久久久久久_国产SUV精品一区二区五_成年人午夜影院 | 3d全彩无码啪啪本子全彩_我的徒弟都是大反派动漫在线观看_少妇午夜啪爽嗷嗷叫视频_中文在线三区_亚洲免费人成_成年人av网站 | 午夜精品久久18免费观看_在线看亚洲十八禁网站_色77久久综合网_亚洲国产一区二_最新av在线网站_亚洲啊v | 国产成a人无v码亚洲福利_性中国少妇熟妇XXXX农村_人人爱天天操_亚洲中文字幕一区精品自拍_中文文精品字幕一区二区_一级α片免费看刺激高潮视频 | 大地资源网高清在线观看动漫_国产小嫩模无套中出视频_男女做爰高清无遮挡免费视频_波多野结衣在线精品视频_丁香激情视频_国产亚洲精品久久久久久无码网站 | 久久久久亚洲AV成人无码网站_四虎影院大全_日韩一区三区_护士长一级毛片_猫咪成人最新地域网_亚洲精品尤物av在线观看任我爽 | 盗摄精品av一区二区三区_欧美xxx在线观看_午夜精品久久久久久久99婷婷_欧美福利_久久免费高清_有码中文 | 欧美video_精品伊人久久久_欧美v亚洲v国产v_91aiai视频_国产精品一级久久久_国产国语毛片 | 成年人免费在线观看_精品午夜一区二区三区在线观看_成年人免费片_久久久久黄色片_精品国产第一国产综合精品_日本肉体做爰猛烈高潮全免费 | 国产三级网址_亚洲国产精品无码久久久秋霞2_97精品视频在线观看_99久久e免费热视频百度_免费在线观看午夜视频_青草青在线视频 | 欧美一区2区三区4区公司_玖玖综合网_鲁鲁网亚洲站内射污_一级黄色av片_亚洲熟妇丰满多毛XXXX_中文无码一区二区三区在线观看 | 国产三级精品三级在线专区91_热久久最新视频_人人插插_日韩精品一区二区三区四区五区_人妻无码一区二区不卡无码AV_国产精品久久久久久久久久白浆 |