Unreal Plugin Language参考

添加XML

添加空的XML:

<?xml version="1.0" encoding="utf-8"?>
<root xmlns:android="http://schemas.android.com/apk/res/android">

<trace enable="true"/><!--是否启用调试 -->

<!--初始化时需要执行的操作-->
<init></init>

<!--其他 -->

</root>

打如需输出日志,请使用如下节点:

<log text="log记录"/>

基本语法

定义变量

<setBool result="变量" value=""/>
<setInt result="..." value="..."/>
<setString result="..." value="..."/>
<setElement result="..." value="..."/>
<setElement result="..." xml="..."/>

从配置文件中读取变量

<setBoolFromProperty result="..." ini="..." section="..." property="..." default="..."/>
<setIntFromProperty result="..." ini="..." section="..." property="..." default="..."/>
<setStringFromProperty result="..." ini="..." section="..." property="..." default="..."/>

读取变量的值

布尔变量:

$B(变量名)

整型变量:

$I(变量名)

字符串变量:

$S(变量名)

XML元素:

$E(变量名)

此外,还有一些预定义变量:

$S(Architecture):架构名称,包括armeabi-armv7a、arm64-v8a、x86、x86_64;
$S(PluginDir):XML文件的文件夹名称;
$S(EngineDir):引擎文件夹名称;
$S(BuildDir) :为每个平台构建文件夹名称,在Intermediate中;
$S(ProjectDir):项目文件夹名称;

变量运算

<setBoolNot result="..." source="..."/>
<setBoolAnd result="..." arg1="..." arg2="..."/>
<setBoolOr result="..." arg1="..." arg2="..."/>
<setBoolIsEqual result="..." arg1="..." arg2="..."/>
<setBoolIsLess result="..." arg1="..." arg2="..."/>
<setBoolIsLessEqual result="..." arg1="..." arg2="..."/>
<setBoolIsGreater result="..." arg1="..." arg2="..."/>
<setBoolIsGreaterEqual result="..." arg1="..." arg2="..."/>

<setIntAdd result="..." arg1="..." arg2="..."/>
<setIntSubtract result="..." arg1="..." arg2="..."/>
<setIntMultiply result="..." arg1="..." arg2="..."/>
<setIntDivide result="..." arg1="..." arg2="..."/>

<setStringAdd result="..." arg1="..." arg2="..."/>
<setStringSubstring result="..." source="..." start="..." length="..."/>
<setStringReplace result="..." source="..." find="..." with="..."/>

<setIntLength result="..." source="..."/>

<setIntFindString result="..." source="..." find="..."/>

<setBoolStartsWith result="..." source="..." find="..."/>
<setBoolEndsWith result="..." source="..." find="..."/>
<setBoolContains result="..." source="..." find="..."/>

变量替换

<replace find="..." with="..."/>

流程控制

<if condition="...">
    <true>
        <!-- executes if boolean variable in condition is true -->
    </true>
    <false>
        <!-- executes if boolean variable in condition is false -->
    </false>
</if>

<isArch arch="armeabi-armv7">
    <!-- do stuff -->
</isArch>

<isDistribution>
    <!-- do stuff -->
</isDistribution>

<return/>

<while condition="...">
    <!-- do stuff -->
</while>

<break/>
<continue/>

Android相关

追加内容到Android Manifest文件:

<androidManifestUpdates>
    <addPermission android:name="..."/>
    <addFeature android:name="..."/>
    <addLibrary android:name="..."/>

    <addElement tag="..." name="..."/>
    <removeElement tag="..."/>
    <addElements tag="..."></addElements>

    <addAttribute tag="..." name="..." value="..."/>
    <removeAttribute tag="..." name="..."/>

    <loopElements tag="..."></loopElements>
</androidManifestUpdates>

打包后,可在Intermediate/Android/APK/AndroidManifest.xml中看到您追加的内容。

追加混淆:

<proguardAdditions>
    <insert>...</insert>
</proguardAdditions>

打包后,可在Intermediate/Android/APK/proguard-project.txt中看到您追加的混淆规则

GameActivity是我们可以干预的Activity,可以通过下列方法在Activity的生命周期中追加内容:

<gameActivityImportAdditions>
    <insert></insert>
  </gameActivityImportAdditions>

<gameActivityClassAdditions>
    <insert>...</insert>
</gameActivityClassAdditions>

<gameActivityOnStartAdditions>
    <insert>...</insert>
</gameActivityOnStartAdditions>

<gameActivityReadMetadataAdditions>
    <insert>...</insert>
</gameActivityReadMetadataAdditions>

<gameActivityOnCreateAdditions>
    <insert>...</insert>
</gameActivityOnCreateAdditions>

<gameActivityOnDestroyAdditions>
    <insert>...</insert>
</gameActivityOnDestroyAdditions>

<gameActivityOnStopAdditions>
    <insert>...</insert>
</gameActivityOnStopAdditions>

<gameActivityOnPauseAdditions>
    <insert>...</insert>
</gameActivityOnPauseAdditions>

<gameActivityOnResumeAdditions>
    <insert>...</insert>
</gameActivityOnResumeAdditions>

<gameActivityOnActivityResultAdditions>
    <insert>...</insert>
</gameActivityOnActivityResultAdditions>

<soLoadLibrary>
    <loadLibrary name="..." failmsg="..."/>
    <insert>...</insert>
</soLoadLibrary>

打包后,进入Intermediate\Android\APK\src\com\epicgames\ue4\GameActivity.java文件,即可看到您追加的内容。

XML操作

<addElement tag="..." name="..."/>
<addElements tag="..."> body </addElements>
<removeElement tag="..."/>
<setStringFromTag result="..." tag="..." name="..."/>
<setStringFromAttribute result="..." tag="..." name="..."/>
<addAttribute tag="..." name="..." value="..."/>
<removeAttribute tag="..." name="..."/>
<loopElements tag="..."> instructions </loopElements>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值