unity打包指定平台-总结(自己记录)

打包各个平台-总结(自己记录)

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();
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

unity_YTWJJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值