收藏
回答

在 Unity 中使用构建模板的钩子为什么不会被调用??

查看开发者文档,在对应的目录下创建好了文件并且使用了样例的代码,但是在构建的时候,并没有触发。

请问是为什么?难道是需要在某个地方调用 PluginDemo 这个函数吗??按道理来说,应该是自动触发的吧。。。

https://wechat-miniprogram.github.io/minigame-unity-webgl-transform/Design/BuildTemplate.html#%E6%9E%84%E5%BB%BA%E6%A8%A1%E6%9D%BF%E5%89%8D%E5%90%8E%E4%B8%8D%E5%90%8C%E6%97%B6%E6%9C%BA%E7%9A%84%E9%92%A9%E5%AD%90

// plugin.cs
using System.IO;
using UnityEngine;
using WeChatWASM;


/// <summary>
/// 构建生命周期回调钩子
/// 注意事项:
///     请创建脚本在 Editor (子)目录下;
///     回调钩子请使用 public 声明成员函数
/// </summary>
public class PluginDemo : LifeCycleBase
{


    public override void afterCopyDefault()
    {
        // code...
        Debug.Log("afterCopyDefault");
    }


    public override void beforeCopyDefault()
    {
        // 可使用 Exception 阻止继续构建导出
        throw new System.Exception("Build Failed.");
    }


    public override void beforeCoverTemplate()
    {
        // 读取你的自定义模板目录并对其中的资源做动态修改
        var tmp = BuildTemplateHelper.CustomTemplateDir;
        using (
          FileStream file = new FileStream(
            Path.Combine(tmp, "newFile.js"),
            FileMode.Create, FileAccess.Write))
        {
            using (StreamWriter writer = new StreamWriter(file))
            {
                writer.WriteLineAsync("Your Code Content.");
            }
        }
        // 尽管你在导出期间动态的创建/修改了自定义模板中的资源
        // 在导出结束后WXSDK会自动恢复你的修改
    }
}
回答关注问题邀请回答
收藏

1 个回答

  • 星云
    星云
    04-17

    你好,我使用文档案例钩子执行正常。我使用的是 Windows10 Unity2021.3.45 PackageManager导入的最新版本WXSDK。

    请提供下你的 操作系统、Unity版本、WXSDK导入方式。

    04-17
    有用
    回复 1
    • 阿钰.
      阿钰.
      04-18
      我使用的是 Window10,Unity 2021.3.45f1c1,使用的是资源安装包,导入是 minigame.202503201129.unitypackage
      04-18
      回复
登录 后发表内容