前言
一个特殊的需求,需要在代码中配置安卓打包相关设置。
一、安卓签名设置相对路径
这个比较简单,找到ProjectSettings文件内的ProjectSettings.asset,其中有一条配置是
AndroidKeystoreName: "E:/XXX/Moudle/Assets/Plugins/XXX.keystore"
将其修改为
AndroidKeystoreName: ./Assets/Plugins/XXX.keystore
检查设置即可发现已经变化
二、签名别名密码保存
https://blog.csdn.net/acmhonor/article/details/94552089
我是看了这篇帖子改的,就不再多说了,感谢博主。
三、自动设置启动画面
这个部分有点意思,通过序列化读写ProjectSettings.asset文件内的配置来实现。可能大家都用不到,所以资料比较少,下边这个链接有相关用法,但是有点不太对,我修改了一下。
https://answers.unity.com/questions/1619110/set-androids-static-splash-image-using-api.html
private static void ChangeImage()
{
string path = Application.dataPath + "/AllResources/Image/Logo/Start.png";
if (!File.Exists(path))
{
Debug.Log("文件不存在");
return;
}
Texture2D tex = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/AllResources/Image/Logo/Start.png");
const string projectSettings = "ProjectSettings/ProjectSettings.asset";
UnityEngine.Object obj = AssetDatabase.LoadAllAssetsAtPath(projectSettings)[0];
SerializedObject psObj = new SerializedObject(obj);
SerializedProperty androidSplashFileId = psObj.FindProperty("androidSplashScreen");
Debug.Log(androidSplashFileId);
if (androidSplashFileId != null)
{
androidSplashFileId.objectReferenceValue = tex;
}
psObj.ApplyModifiedProperties();
PlayerSettings.Android.splashScreenScale = AndroidSplashScreenScale.ScaleToFill;
}