Files
daluandou/.codely.packages/cn.tuanjie.codely.bridge@1.0.85-785dea6a/Editor/Bridge/Tools/ScriptFix/FixMissingImports.cs
T
huadexuan 53d95802e5 ```
feat(gameplay): 更新单位属性和材质配置

- 调整多个单位的基础生命值和攻击力数值平衡
- 修改CoreBattleGround材质的纹理缩放比例
- 更新地砖材质颜色为白色
- 优化纹理资源设置,调整最大纹理尺寸并添加PlayableAds平台支持
- 修复弓箭手技能目标查找逻辑,改用统一的敌人检测方法
- 为水晶矿添加中立阵营设置和光球视觉效果同步
- 调整预制体中的全局缩放参数
- 为狼人和石巨人添加NavMeshAgent组件支持
- 优化水晶矿血条显示位置计算方式
```
2026-09-20 21:52:31 +08:00

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;
}
}
}