fix(enemy): 配方校验改用一次性 builder 探测,不再干扰共享图缓存
This commit is contained in:
@@ -117,14 +117,15 @@ namespace BaseGames.Tests.EditMode.AI
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Validate_DoesNotLeaveCachedGraph()
|
||||
public void Validate_DoesNotDisturbCachedGraph()
|
||||
{
|
||||
// 校验期试建的图不能留给运行时——否则改了模块后拿到的是校验时的旧图。
|
||||
// 校验用一次性 builder 探测,不得动共享缓存——否则同一配方的下一只敌人
|
||||
// 会拿到不同的图实例,破坏 flyweight 不变量。
|
||||
var so = MakeE001Recipe();
|
||||
var before = so.GetOrBuildGraph(); // 先把缓存捂热(不经 AssignModules)
|
||||
Validate(so);
|
||||
so.AssignModules(new SinglePost(LocomotionMode.Idle),
|
||||
new RushEngagement("other", RushExit.OnLostTarget));
|
||||
Assert.AreEqual(SinglePost.Post, so.GetOrBuildGraph().EntryState);
|
||||
var after = so.GetOrBuildGraph();
|
||||
Assert.AreSame(before, after); // 校验前后必须是同一张图
|
||||
Object.DestroyImmediate(so);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user