diff --git a/Assets/PerfectWorld/Scripts/Move/AutoPFImp/AutoMove/CMoveAgent.cs b/Assets/PerfectWorld/Scripts/Move/AutoPFImp/AutoMove/CMoveAgent.cs
index e4e37f05c1..20fa085849 100644
--- a/Assets/PerfectWorld/Scripts/Move/AutoPFImp/AutoMove/CMoveAgent.cs
+++ b/Assets/PerfectWorld/Scripts/Move/AutoPFImp/AutoMove/CMoveAgent.cs
@@ -3,79 +3,59 @@ using System.Collections.Generic;
using UnityEngine;
// Filename : CMoveAgent.cs
-// Creator : ported/simplified from C++ (AutoPFImp/AutoMoveImp/MoveAgent.*)
+// Creator : ported from C++ (AutoPFImp/AutoMoveImp/MoveAgent.*)
// Date : 2026/01/09
namespace AutoMove
{
///
- /// Minimal MoveAgent: loads movemap and provides A* path on layer0 rmap.
- /// 最小 MoveAgent:加载 movemap,并在第0层 rmap 上执行 A* 路径搜索。
+ /// MoveAgent: A* on layer0 rmap + COptimizePath (matches C++ CMoveAgent flow).
///
public class CMoveAgent
{
- // Debug switch (enable temporarily while validating routes).
- // 调试开关(验证寻路时可临时开启)。
- // NOTE: must not be const, otherwise Unity compiler warns about unreachable code.
- // 注意:不要用 const,否则 Unity 编译会报“不可达代码”警告。
private static bool DEBUG_AUTOPF = false;
+
public abstract class BrushTest
{
- // from.y/to.y store DH in original engine.
- // 原版中 from.y/to.y 存储 DH(相对地形高度差)。
public abstract bool Collide(Vector3 from, Vector3 to);
}
private readonly CMoveMap m_pMoveMap = new CMoveMap();
- private Vector3 m_vOriginOverride;
+ private COptimizePath m_pPathOptimizer;
private Vector2Int m_ptStart;
private Vector2Int m_ptGoal;
private int m_iLayerStart;
private int m_iLayerGoal;
- private readonly List m_path3D = new List(1024);
- private readonly List m_pathMap = new List(1024);
- private int m_optimizeCurIndex;
- private const int DefaultOptimizeCatchCount = 10;
-
public bool Load(string basePathNoExt, Func resolver, Vector3? originOverride)
{
- // basePathNoExt corresponds to "maps\\