feat(gameplay): 更新单位属性和材质配置 - 调整多个单位的基础生命值和攻击力数值平衡 - 修改CoreBattleGround材质的纹理缩放比例 - 更新地砖材质颜色为白色 - 优化纹理资源设置,调整最大纹理尺寸并添加PlayableAds平台支持 - 修复弓箭手技能目标查找逻辑,改用统一的敌人检测方法 - 为水晶矿添加中立阵营设置和光球视觉效果同步 - 调整预制体中的全局缩放参数 - 为狼人和石巨人添加NavMeshAgent组件支持 - 优化水晶矿血条显示位置计算方式 ```
49 lines
2.1 KiB
C#
49 lines
2.1 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Codely.Microsoft.CodeAnalysis;
|
|
using Codely.Microsoft.CodeAnalysis.CSharp;
|
|
using SyntaxTree = Codely.Microsoft.CodeAnalysis.SyntaxTree;
|
|
|
|
namespace UnityTcp.Editor.Tools
|
|
{
|
|
internal class FixMissingImports : ScriptFixProvider
|
|
{
|
|
static readonly string[] k_DiagnosticIds = { "CS0246", "CS0103", "CS1061" };
|
|
|
|
readonly Dictionary<string, string[]> k_NamespaceKeywords = new Dictionary<string, string[]>
|
|
{
|
|
{ "System.Linq", new[] { "Where", "Select", "OrderBy", "Concat", "Any", "First", "Last", "ToList", "ToArray", "GroupBy", "Distinct" } },
|
|
{ "System.Collections.Generic", new[] { "List<>", "Dictionary<>", "HashSet<>", "Queue<>", "Stack<>", "SortedList<>" } },
|
|
{ "UnityEditor", new[] { "MonoScript", "AssetDatabase", "EditorUtility", "Selection", "SceneView", "PrefabUtility", "Undo", "EditorGUILayout", "SerializedObject", "SerializedProperty" } },
|
|
{ "UnityEngine.SceneManagement", new[] { "SceneManager", "Scene", "LoadSceneMode" } },
|
|
{ "UnityEditor.SceneManagement", new[] { "EditorSceneManager" } },
|
|
};
|
|
|
|
public override bool CanFix(Diagnostic diagnostic)
|
|
{
|
|
if (!k_DiagnosticIds.Contains(diagnostic.Id))
|
|
return false;
|
|
var message = diagnostic.GetMessage();
|
|
return k_NamespaceKeywords.Values.Any(kws => kws.Any(kw => message.Contains($"'{kw}'")));
|
|
}
|
|
|
|
public override bool ApplyFix(ref SyntaxTree tree, Diagnostic diagnostic, ScriptFixContext context)
|
|
{
|
|
var message = diagnostic.GetMessage();
|
|
foreach (var pair in k_NamespaceKeywords)
|
|
{
|
|
if (pair.Value.Any(kw => message.Contains($"'{kw}'")))
|
|
{
|
|
if (!context.Imports.Contains(pair.Key))
|
|
{
|
|
context.Imports.Add(pair.Key);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
}
|