feat:1、添加项目

This commit is contained in:
2026-06-02 10:26:44 +08:00
commit dfead2c461
7518 changed files with 748693 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
using UnityEditor;
using UnityEditor.Callbacks;
using System.IO;
using UnityEngine;
public class GradleFixer
{
[PostProcessBuild]
public static void OnPostBuild(BuildTarget target, string path)
{
if (target != BuildTarget.Android) return;
// string wrapperPath = Path.Combine(path, "gradle", "wrapper", "gradle-wrapper.properties");
// string customContent = "distributionUrl=gradle-8.7-bin.zip";
//
// if (File.Exists(wrapperPath))
// {
// File.WriteAllText(wrapperPath, customContent);
// Debug.Log("✅ gradle-wrapper.properties 已替换为自定义版本");
// }
// else
// {
// Debug.LogWarning("⚠️ 未找到 gradle-wrapper.properties,可能 Unity 构建未生成 wrapper");
// }
}
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7d9d17c63e43942a0becce94d91106f3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+92
View File
@@ -0,0 +1,92 @@
using UnityEditor;
using UnityEngine;
using System;
using System.Linq;
using System.Reflection;
[InitializeOnLoad]
public static class IAPDefineSymbolAdder
{
private const string SYMBOL_IAP = "UNITY_IAP";
private const string SYMBOL_PURCHASING = "UNITY_PURCHASING";
static IAPDefineSymbolAdder()
{
CheckAndUpdateSymbols();
}
[MenuItem("Tools/IAP/检查并更新宏")]
public static void CheckAndUpdateSymbols()
{
bool iapInstalled = IsIAPInstalled();
foreach (BuildTargetGroup group in new[] { BuildTargetGroup.Android, BuildTargetGroup.iOS })
{
string defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(group);
var symbols = defines.Split(';').Where(s => !string.IsNullOrEmpty(s)).ToList();
if (iapInstalled)
{
// 需要宏但宏不存在 → 添加
bool changed = false;
if (!symbols.Contains(SYMBOL_IAP)) { symbols.Add(SYMBOL_IAP); changed = true; }
if (!symbols.Contains(SYMBOL_PURCHASING)) { symbols.Add(SYMBOL_PURCHASING); changed = true; }
if (changed)
{
PlayerSettings.SetScriptingDefineSymbolsForGroup(group, string.Join(";", symbols));
Debug.Log($"[IAP] 检测到 IAP 已安装,已为 {group} 添加宏。");
}
}
else
{
// 不需要宏但宏存在 → 移除
bool changed = symbols.Remove(SYMBOL_IAP) || symbols.Remove(SYMBOL_PURCHASING);
if (changed)
{
PlayerSettings.SetScriptingDefineSymbolsForGroup(group, string.Join(";", symbols));
Debug.Log($"[IAP] 检测到 IAP 未安装,已为 {group} 移除宏。");
}
}
}
}
private static bool IsIAPInstalled()
{
if (TypeExists("UnityEngine.Purchasing.Product"))
return true;
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
if (assemblies.Any(a => a.GetName().Name.Contains("UnityEngine.Purchasing")))
return true;
try
{
Assembly.Load("UnityEngine.Purchasing");
return true;
}
catch
{
return false;
}
}
private static bool TypeExists(string typeName)
{
try
{
return AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(assembly =>
{
try { return assembly.GetTypes(); }
catch (ReflectionTypeLoadException e) { return e.Types.Where(t => t != null); }
})
.Any(t => t.FullName == typeName);
}
catch
{
return false;
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1318dcd9edc0041488d2361d2b29f3ee
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: