Unity 如何在打包的时候执行一些逻辑

1、如果想让unity在打包的过程中,执行一些逻辑,那么该如何做呢?代码如下:

using UnityEditor;
using UnityEditor.Build;
using UnityEngine;

public class NewBehaviourScript : IPreprocessBuild
{
    public int callbackOrder { get { return 0; } }
    public void OnPreprocessBuild(BuildTarget target, string path)
    {
        Debug.Log("OnPreprocessBuild");
    }
}

执行结果:

该脚本需要放在Editor目录下,如下:

在此,需要注意一下,如果需要放在Editor目录下执行的脚本,没有放在Editor目录下,会出现以下问题:

2、在这里对以上的笔记做个实例:

在打apk的时候,用一个已存在的 keystore 对 PlayerSetting 里面板的一些参数进行设置,包括对包名的设置,都可以再以上的逻辑中执行:

假如 keystore 文件放在如下的目录下:

具体代码如下:

using UnityEditor;
using UnityEditor.Build;
using UnityEngine;

public class NewBehaviourScript : IPreprocessBuild
{
    public int callbackOrder { get { return 0; } }
    public void OnPreprocessBuild(BuildTarget target, string path)
    {
        string keystorePath = Application.dataPath + "/Plugins/Android/lgs.keystore";
        PlayerSettings.Android.keystoreName = keystorePath;
        PlayerSettings.Android.keystorePass = "123456";
        PlayerSettings.Android.keyaliasName = "luguoshuai";
        PlayerSettings.Android.keyaliasPass = "123456";
        PlayerSettings.applicationIdentifier = "com.niuchicao.luguoshuai";
    }
}

执行结果:

原文地址:https://www.cnblogs.com/luguoshuai/p/8819902.html