116 lines
3.3 KiB
C#
116 lines
3.3 KiB
C#
using System.IO;
|
|
using System.Text;
|
|
using System.Xml;
|
|
using NUnit.Framework;
|
|
using UnityEditor;
|
|
using UnityEditor.Compilation;
|
|
using UnityEngine;
|
|
|
|
namespace Guru.Editor.Max
|
|
{
|
|
public class AmazonMod: GuruModifier
|
|
{
|
|
protected override string TargetPath => $"Amazon/Scripts/Editor/AmazonDependencies.xml";
|
|
|
|
private static string SDKManagerPath = "Amazon/Scripts/Editor/AmazonSDKManager.cs";
|
|
|
|
public static void Apply()
|
|
{
|
|
var mod = new AmazonMod();
|
|
mod.FixDepsViaPackage();
|
|
mod.HideAmazonMenuItems();
|
|
}
|
|
|
|
#region 修复依赖
|
|
|
|
[Test]
|
|
public void FixDepsViaPackage()
|
|
{
|
|
string path = GetFullPath(TargetPath);
|
|
|
|
if (!File.Exists(path))
|
|
{
|
|
Debug.Log($"<color=orange>---- file not found: {path}</color>");
|
|
return;
|
|
}
|
|
|
|
var doc = new XmlDocument();
|
|
doc.LoadXml(File.ReadAllText(path, Encoding.UTF8));
|
|
if (doc.ChildNodes.Count < 2)
|
|
{
|
|
Debug.LogError($"--- Wrong Xml nodes or no root node");
|
|
return;
|
|
}
|
|
|
|
var root = doc.ChildNodes[1];
|
|
foreach (XmlNode node in root.ChildNodes)
|
|
{
|
|
if (node.Name == "iosPods")
|
|
{
|
|
foreach (XmlElement n in node.ChildNodes)
|
|
{
|
|
if (n.GetAttribute("name") == "Amazon-SDK-Plugin")
|
|
{
|
|
var p = n.GetAttribute("path");
|
|
p = p.Replace("Assets", $"Packages/{GuruMaxSdkAPI.PackageName}");
|
|
n.SetAttribute("path", p);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// 保存文档
|
|
doc.Save(path);
|
|
|
|
var xml = File.ReadAllText(path);
|
|
xml = xml.Replace(">", ">").Replace("<", "<");
|
|
File.WriteAllText(path, xml);
|
|
|
|
Debug.Log($"[GuruMax]<color=#88ff00>--- Fix Amazon depences success: {path}</color>");
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 隐藏菜单
|
|
|
|
[Test]
|
|
public void HideAmazonMenuItems()
|
|
{
|
|
string partten = "[MenuItem (\"Amazon/";
|
|
string path = GetFullPath(SDKManagerPath);
|
|
bool isDirty = false;
|
|
if (File.Exists(path))
|
|
{
|
|
var line = "";
|
|
var lines = File.ReadAllLines(path);
|
|
for (int i = 0; i < lines.Length; i++)
|
|
{
|
|
line = lines[i];
|
|
if (line.Contains(partten))
|
|
{
|
|
lines[i] = $"//{line}";
|
|
isDirty = true;
|
|
}
|
|
}
|
|
|
|
if (isDirty)
|
|
{
|
|
Debug.Log($"[GuruMax]<color=#88ff00>--- Hide Amazon Menu success: {path}</color>");
|
|
File.WriteAllLines(path, lines);
|
|
CompilationPipeline.RequestScriptCompilation();
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError($"--- AmazonSDKManager cannot be found");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
} |