虛幻4 使用指令碼編譯自己的工程

2021-07-15 06:00:07 字數 3457 閱讀 9130

工程檔案

\engine\source\programs\automationtool\automationtool_mono.sln

public static void build(buildcommand command, projectparams params, int workingcl = -1, projectbuildtargets targetmask = projectbuildtargets.all)

log("********** build command started **********");

var ue4build = new ue4build(command);

var agenda = new ue4build.buildagenda();

var crashreportplatforms = new hashset();

// setup editor targets

if (params.haseditortargets && !params.rocket && (targetmask & projectbuildtargets.editor) == projectbuildtargets.editor)

{

編譯工程執行的是這個指令碼,看到了開始時候的那個build command started。

編譯時候可以開啟那個工程檔案,附加到程序,就可以斷點看傳入的引數了。

cmd 到

unrealengine\engine\binaries\dotnet>

目錄下,執行

automationtool.exe -help

linux mac應該是執行 mono automationtools.exe -help

會看到幫助資訊,

automationtool.exe -list

可以列出所有可以用的功能。

analyzethirdpartylibs

blamekeyword

buildcommontools

zipprojectup

buildcookrun

buildplugin

buildthirdpartylibs

codesurgery

fixupredirects

generatedsym

rebuildlightmaps

iphonepackager

launcherlocalization

listmobiledevices

localise

megaxge

testp4_info

gitpullrequest

testfail

testsuccess

testmessage

testrecursion

testrecursionauto

testmaczip

testp4_createchangelist

testp4_strandcheckout

testp4_labeldescription

testp4_clientops

cleanddc

testtestfarm

testarguments

testcombinepaths

testfileutility

testlog

testchangefiletype

testgameperf

testuatbuildproducts

testwatchdogtimer

testosscommands

ubtzeroengineversions

syncsource

generateautomationproject

dumpbranch

debugsleep

testmcpconfigs

testblame

testchanges

testkillall

testcleanformalbuilds

teststopprocess

testthreadedcopyfiles

ue4buildutildummybuildcommand

unrealsynclist

unrealsync

updatelocalversion

testecjoberrorparse

gubp

testtempstorage

執行automationtool.exe -help buildcookrun

可以看到特定命令的幫助資訊。可以自己寫指令碼去buid 或者cook,不用開編輯器了。

檔案位置:

\engine\source\editor\mainframe\private\frame\mainframeactions.cpp

void fmainframeactioncallbacks::createuattask( const fstring& commandline, const ftext& platformdisplayname, const ftext& taskname, const ftext &taskshortname, const fslatebrush* taskicon )

{ // make sure that the uat batch file is in place

#if platform_windows

fstring runuatscriptname = text("runuat.bat");

fstring cmdexe = text("cmd.exe");

#elif platform_linux

fstring runuatscriptname = text("runuat.sh");

fstring cmdexe = text("/bin/bash");

#else

fstring runuatscriptname = text("runuat.command");

fstring cmdexe = text("/bin/sh");

#endif

fstring uatpath = fpaths::convertrelativepathtofull(fpaths::enginedir() / text("build/batchfiles") / runuatscriptname);

fgameprojectgenerationmodule& gameprojectmodule = fmodulemanager::loadmodulechecked(text("gameprojectgeneration"));

這個**就是呼叫runuat的指令碼,然後那個指令碼再呼叫automationtool執行編譯操作,可以在這裡打斷點看看到底打包特定平台時候呼叫了什麼。



虛幻4建立自己的UMG類別

虛幻4建立自己的umg類別 具體來說其實是對上一張九宮格的補充。過載uimage類別。或者其他什麼類別都可以 uclass class api ugamestyle image public uimage 我過載了rebuildwidget 這個函式返回乙個swidget,這個widget可以隨便返...

虛幻4引擎開發的手遊 怎麼使用虛幻4開發遊戲?

謝邀!在職的虛幻四開發人員回答一波。一款比較完整的遊戲是由很多部分組合而成的。而遊戲引擎的作用是把所有的東西整合到一起。簡單來說一款遊戲所用到的資源和軟體如下 左邊為遊戲資源,右邊為所用軟體 人物模型,場景模型 3dmax或者maya,zbrush 人物貼圖 ps,mindtex,3dmax 人物動...

使用buildroot建立自己的交叉編譯工具鏈

1.build tools gcc version 2.95 orany later g version 2.95 orany later python version 2.6or 2.7 2.dependencies packages 下面的自己根據需要安裝 ncurses5 menuconfig...