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"; } }
执行结果: