test(ai): BrainGraph 第1阶段收尾——flyweight 共享测试 + 全量绿
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
using NUnit.Framework;
|
||||
using BaseGames.AI;
|
||||
|
||||
namespace BaseGames.Tests.EditMode.AI
|
||||
{
|
||||
public class AiScriptTests
|
||||
{
|
||||
sealed class SampleAi : AiScript
|
||||
{
|
||||
public int BuildCount;
|
||||
protected override void Build(BrainBuilder b)
|
||||
{
|
||||
BuildCount++;
|
||||
b.Entry("A");
|
||||
b.State("A").To("B").When(c => c.Sensor.SeesPlayer(), "SeesPlayer");
|
||||
b.State("B");
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetOrBuildGraph_ReturnsSameSharedInstance()
|
||||
{
|
||||
var script = new SampleAi();
|
||||
var g1 = script.GetOrBuildGraph();
|
||||
var g2 = script.GetOrBuildGraph();
|
||||
Assert.AreSame(g1, g2); // flyweight:同一引用
|
||||
Assert.AreEqual(1, script.BuildCount); // 只构建一次
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9e6381340221cbb4c965e28d671c8a3c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user