打包各个平台-总结(自己记录)
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEditor.XR.Management;
using UnityEngine;
using UnityEngine.XR;
using UnityEngine.XR.Management;
/// <summary>
/// 设置窗口.
/// </summary>
public class SettingWindows : EditorWindow
{
string AndmanifestFilerootpath = @"\Plugins\Android\";
private string Macro = null;
XRGeneralSettings buildTargetSettings;
/// <summary>
/// 每打开一次窗口就会执行一次
/// </summary>
private void OnEnable()
{
buildTargetSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildTargetGroup.Android);
Macro = PlayerSettings.GetScriptingDefineSymbolsForGroup(BuildTargetGroup.Android);//获取宏信息 参数:获取哪个平台下的
Debug.Log("获取宏:" + Macro);
}
/// <summary>
/// 绘制窗口条目.
/// </summary>
private void OnGUI()
{
//for (int i = 0; i < macroItemLists.Count; i++)
//{
// EditorGUILayout.BeginHorizontal("box");//开启一个水平行 备注:必须成对出现
// dic[macroItemLists[i].Name] = GUILayout.Toggle(dic[macroItemLists[i].Name], macroItemLists[i].DisplayName);
// EditorGUILayout.EndHorizontal();//结束这个水平行
//}
EditorGUILayout.BeginHorizontal();//开启一个水平行 备注:必须成对出现
if (GUILayout.Button("Pico-发布设置", GUILayout.Width(110)))
{
SaveMacro();
}
if (GUILayout.Button("创维一体机-发布设置", GUILayout.Width(160)))
{
SaveMacro("创维一体机");
}
EditorGUILayout.EndHorizontal();//结束这个水平行
}
/// <summary>
/// 保存宏信息 XR设置
/// </summary>
private void SaveMacro(string hong = "")
{
// Debug.Log("原始宏:" + Macro);
if (!string.IsNullOrEmpty(hong)) //创维
{
Macro += ";" + hong;
buildTargetSettings.InitManagerOnStart = true;
FileMoveToReName(false);
}
else //pico
{
buildTargetSettings.InitManagerOnStart = false;
Macro = Macro.Replace(";创维一体机", " ");
FileMoveToReName(true);
}
Debug.Log("新的宏: " + Macro + " - XR init on start 设置: " + buildTargetSettings.InitManagerOnStart);
PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildTargetGroup.Android, Macro);//将信息保存到宏信息里. 参数1:保存到哪个平台 参数2:要保存的内容.
}
private void FileMoveToReName(bool isPico = true)
{
string ManifestName = Application.dataPath + AndmanifestFilerootpath + "AndroidManifest.xml";
string skyworthManifestName = Application.dataPath + AndmanifestFilerootpath + "AndroidManifest-skyworth.xml";
string picoManifestName = Application.dataPath + AndmanifestFilerootpath + "AndroidManifest-PICO.xml";
if (File.Exists(skyworthManifestName) && File.Exists(picoManifestName)) //1 存在 sky 和 pico
{
if (isPico)
File.Move(picoManifestName, ManifestName);
else
File.Move(skyworthManifestName, ManifestName);
}
else if (File.Exists(skyworthManifestName) && File.Exists(ManifestName)) //2 存在 sky 和 AndroidManifest
{
if (!isPico)
{
File.Move(ManifestName, picoManifestName);
File.Move(skyworthManifestName, ManifestName);
}
}
else if (File.Exists(picoManifestName) && File.Exists(ManifestName)) //3 存在 pico 和 AndroidManifest
{
if (isPico)
{
File.Move(ManifestName, skyworthManifestName);
File.Move(picoManifestName, ManifestName);
}
}
AssetDatabase.Refresh();
//AndroidManifest-skyworth
//AndroidManifest-PICO
//AndroidManifest
}
}
/// <summary>
/// 自定义菜单类.
/// </summary>
public class Menu
{
[MenuItem("Tools/Setting")]
public static void Settings()
{
SettingWindows sw = EditorWindow.GetWindow<SettingWindows>();//获取指定类型的窗口.
sw.titleContent = new GUIContent("设置窗口");
sw.Show();
}
}
版权声明:本文为qq_39735878原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。