活用附加文件

什么是附加文件

附加文件是指更改Unite的游戏的举动,或添加新功能的文件。

Unite的系统是使用C#程序语言撰写的,附加文件是通过对该内容进行加工修正,来添加新功能。
附加文件作为Unity包的一部分发布,后缀名为unitypackage。


●附加文件的一个示例

此处将为您解说制作简单附加文件的方法,以及将附加文件导入项目的方法。

[Tips]插件与附加文件

Unite的附加文件与以往的制作大师(Maker)中的插件的功能几乎相同。
尤其是,它继承了RPG Maker MZ中的插件指令等的式样,熟悉以往Maker的用户一定能马上理解它的用法。

附加文件与插件的一个不同之处是,插件是单一的脚本(后缀为js)文件,
附加文件不仅是程序的源代码,更是包含必要素材的工程包。

显示附加文件列表

要确认现在导入的附加文件时,可单击画面左上角的下述按键。

单击该按键,可显示以下内容。

可以看到,现在还没有导入任何附加文件。

制作附加文件

那么,让我们来尝试制作一个简单的附加文件吧。

以下说明“将独立开关A从OFF变为ON”这一附加文件的制作步骤。

即使不使用附加文件,现有功能也可满足该需求。但是,希望大家能以此来理解制作附加文件的大致流程。

制作脚本

在项目文件夹中的“Asset/RPGMaker/Codebase/Add-ons”文件夹下新建文件夹。

此处的文件夹名必须与后续制作的脚本同名,因此建议使用有意义的名称。

本次我们暂且命名为“AddonSample”。

在刚才新建的文件夹内,新建与文件夹名同名的Cs文件。

用任意编辑器打开制作的文件,输入以下内容。

/*:
* 
*/

/*:zh_CN
* 
*/

namespace RPGMaker.Codebase.Addon {
  public class AddonSample {

  }
}

接下来为您逐个说明上述文本的意义。

第1~3行:用英语描述附加文件的说明。

第5~7行:用日语描述附加文件的说明。

第9行:描述namespece。namespace作为Unite的附加文件规则,必须指定“RPGMaker.Codebase.Addon”。

第10行:描述class名。class名须输入与文件名相同的名称。


将以下Comment复制粘贴至第5~7行的部分。

/*:zh_CN
 * @addondesc 更改独立开关
 * @author Author
 * @help 切换任意独立开关的ON/OFF
 * 
 * @command SetSelfSwitchValue
 *      @text 更改独立开关
 *      @desc 设置独立开关的值。
 * 
 *  @arg SelfSwitch
 *      @text 独立开关
 *      @desc 指定独立开关
 *      @type select
 *      @option A
 *      @option B
 *      @option C
 *      @option D
 *      @default A
 * 
 *  @arg Value
 *      @text 设置值
 *      @desc 指定独立开关的值
 *      @type boolean
 */

将以下源码复制粘贴至第9,10行的部分。

作为Arguments参数对象,接受独立开关(A~D)与bool值(true,false),并用指定值覆盖独立开关。详细说明在此省略。

using System.Collections.Generic;
using RPGMaker.Codebase.CoreSystem.Knowledge.DataModel.Runtime;
using RPGMaker.Codebase.Runtime.Addon;
using RPGMaker.Codebase.Runtime.Common;
  
namespace RPGMaker.Codebase.Addon {
  public class AddonSample {
    public void SetSelfSwitchValue(int selectSelfSwitch, bool selectValue){
      var eventId = AddonManager.Instance.GetCurrentEventId();
      var saveDataModel = DataManager.Self().GetRuntimeSaveDataModel();
      var selfSwitchData = saveDataModel.selfSwitches.Find(selfSwitch => selfSwitch.id == eventId);
      if (selfSwitchData == null){
          selfSwitchData = new RuntimeSaveDataModel.SaveDataSelfSwitchesData();
          selfSwitchData.id = eventId;
          selfSwitchData.data = new List<bool>() { false, false, false, false };
          saveDataModel.selfSwitches.Add(selfSwitchData);
      }
      selfSwitchData.data[selectSelfSwitch] = selectValue;
    }
  }
}

[Tips]注解

脚本顶部所记载的Comment部分(用/* */框出的部分)中,可使用RPG制作大师MZ的大部分注解。 RPG制作大师MZ 插件讲座
但请注意以下几点。

  • 注解
  • 基本上已安装与RPG制作大师MZ相同的注解。
    但是,以下注解虽然在RPG制作大师MZ中可使用,在Unite中则不可使用。(今后没有安装计划)
    @dir, @require, @requiredAssets, @noteParam, @noteDir, @noteType, @noteData


  • 参数种类
  • 可用[][]指定二维阵列。
    参数类型发生如下变化。
    integer→int
    number→double
    boolean→bool
    select→int
    struct→string(JSON)
    array→string(JSON)

  • 其他注意点
  • 请注意type中的储存内容发生了变化。例如地图ID在PRG制作大师MZ中为数值,在Unite中则为字符串。
    附加文件构造函数的Arguments参数对象的数量与类型,必须与注解的附加文件参数一致。
    附加文件指令的方法(Method)中的Arguments参数对象的数量与类型,也必须与注解的附加文件指令的Arguments参数对象一致。

    [Tips]DataManager

    DataManager处理的是Unite的核心数据。通过DataManager,可以使用附加文件实现普通事件无法实现的内容。

    附加文件有效化

    从Unite的菜单单击以下图标,显示附加文件列表。

    正常制作脚本后,将被添加至附加文件列表。

    双击AddonSample附加文件,将显示以下画面。

    此处可显示附加文件的帮助,并设置参数。

    将附加文件的状态从“OFF”改为“ON”,并按下“确定”键。

    该附加文件将在当前项目中生效。

    制作事件

    制作适当地图,并切换为事件编辑模式。

    在事件编辑模式中,右击任意位置>选择新建。

    右击事件执行内容,选择新建事件,显示事件指令窗口。

    从事件指令中,选择附加文件>附加文件指令。

    编辑附加文件指令,该附加文件指令将被添加至事件执行内容中。

    选择附加文件指令,将附加文件名从“0001:(无)”改为“0002:AddonSample”

    现在可选择“指令名称”。

    可在此处选择用刚才的脚本制作的“更改独立开关”

    可在附加文件指令的底部,指定指令的Arguments参数对象。

    在“更改独立开关”指令中,可指定“独立开关”进行更改,还可指定ON/OFF的值,即“设置值”。

    双击“设置值”的项目,将显示如下画面。

    因为“设置值”为bool值,因此可更改ON与OFF。

    此处为了将独立开关改为ON,要选择ON(true),并按下“确定”键。

    确认动作

    依照下图编辑刚才制作的事件。

    在红框内确认独立开关为ON还是OFF。

    在黄框内调取附加文件,并将独立开关改为ON。

    在绿框内再次确认独立开关为ON还是OFF。

    在设置事件的位置附近设置初始配置>玩家,并确认动作。

    针对事件进行操作时,将跳转以下对话。

    独立开关状态由OFF变为ON时,即为成功。

    以上为附加文件的制作步骤。

    打包附加文件

    使用Unity的功能,将制作好的附加文件打包。

    如果是供自己使用的附加文件,则无需该步骤。公开时,请按该步骤打包。


    从Unity的菜单中选择窗口>RPG Maker>模式>RPG Maker+Unity Editor

    片刻后将显示UnityEditor。

    单击“项目”标签,打开“项目”窗口。

    通过“项目”窗口,移动至包含所制作的附加文件的目录。

    在本次示例中,移动至RPGMaker\Codebase\Add-ons目录。

    通过“项目”窗口,选择并导出所制作的附加文件文件夹。

    右击附加文件文件夹>单击导出工程包...

    将显示Exporting package窗口。(下方左图)

    不勾选“包含从属”,筛选打包文件夹,按下“导出...”按键。(下方右图)

    保存至任意位置。

    以上为附加文件的打包步骤。

    [Tips]脚本以外的打包方法

    图像文件及音乐文件等Unity的Prefab对象也可以打进工程包。

    在文件夹内新建Resources文件夹,存储Prefab,即可通过“Resources.Load”API进行访问。

    使用Prefab可在游戏中自由配置对象,或显示UI等。此处省略详细说明。

    请务必一试,可大幅提升自由程度。

    导入附加文件的方法

    准备好附加文件后,按以下顺序导入附加文件。

    [Step.1]切换至Unity编辑器

    首先,从RPG Maker Unite的编辑器移动至普通的Unity编辑器。第3个“Unity Editor”就是普通的Unity编辑器。

    已切换至Unity画面。

    [Step.2]选择要导入的附加文件

    要导入附加文件时,有以下两种方法。请执行任意一种。

    [Step.3]导入

    选择文件,显示如下窗口。


    ●显示配置的文件夹及文件。

    此时,请执行“导入”。

    再导入两个文件

    此时,同样读取其他两个附件文件。请同样执行“导入”。

    [Step.4]返回RPG Maker Unite的编辑模式

    选择菜单中的窗口>RPG Maker>模式>RPG Maker Forcused Mode ,返回Unite的正常画面。

    [Step.3]确认已导入

    单击附加文件的图标,显示附加文件列表。

    之前导入的3个附加文件已添加至列表中。所有的初始值均为OFF,因此要将功能设为有效时,需要设置为ON。

    附加文件总结

    以上为附加文件的主要设置方法。

    附加文件与以往的制作大师(Maker)中的插件一样,可通过解析系统程序制作,
    因此熟悉Unity的用户也可制作新的附加文件。
    但是,与插件相同,在制作附加文件时,必须有部分对注解的理解。在此不做展开。

    请务必利用附加文件,进一步有效利用Unite。