简单重构拆分 SimulationWorld

This commit is contained in:
2026-09-18 17:43:41 +08:00
parent 1e4d3ef8d7
commit 92e1ea0d55
109 changed files with 2605 additions and 1817 deletions
@@ -57,7 +57,7 @@ namespace SepCore.Tests.PlayMode
playerObject.transform.position = Vector3.zero;
_world.SyncPlayerMovementInput(playerObject.transform, true, Vector3.right, 6f);
_world.Tick(new SimulationTickContext(0.5f, 0.5f, playerObject.transform.position));
_world.Tick(new SimulationTickContext(0.5f, playerObject.transform.position));
yield return null;
@@ -104,33 +104,30 @@ namespace SepCore.Tests.PlayMode
{
_world.SyncEnemyMovementInput(4001, false, Vector3.left, 5f, true, 0.45f, 2);
MethodInfo upsertEnemyMethod = typeof(SimulationWorld).GetMethod("UpsertEnemy", NonPublicInstance);
upsertEnemyMethod.Invoke(_world, new object[]
_world.UpsertEnemy(new EnemySimData
{
new EnemySimData
{
EntityId = 4001,
Position = Vector3.zero,
Forward = Vector3.forward,
Rotation = Quaternion.identity,
Speed = 5f,
AttackRange = 0.5f,
AvoidEnemyOverlap = true,
EnemyBodyRadius = 0.45f,
SeparationIterations = 2
}
EntityId = 4001,
Position = Vector3.zero,
Forward = Vector3.forward,
Rotation = Quaternion.identity,
Speed = 5f,
AttackRange = 0.5f,
AvoidEnemyOverlap = true,
EnemyBodyRadius = 0.45f,
SeparationIterations = 2
});
_world.SyncEnemyMovementInput(4001, false, Vector3.left, 5f, true, 0.45f, 2);
_world.Tick(new SimulationTickContext(1f, 1f, new Vector3(8f, 0f, 0f)));
_world.Tick(new SimulationTickContext(1f, new Vector3(8f, 0f, 0f)));
yield return null;
Assert.That(_world.Enemies.Count, Is.EqualTo(1));
Assert.That(_world.Enemies[0].Position.x, Is.EqualTo(0f).Within(0.0001f));
Assert.That(_world.Enemies[0].Position.y, Is.EqualTo(0f).Within(0.0001f));
Assert.That(_world.Enemies[0].Position.z, Is.EqualTo(0f).Within(0.0001f));
Assert.That(_world.Enemies[0].State, Is.EqualTo(0));
Assert.That(_world.EnemyCount, Is.EqualTo(1));
Assert.That(_world.TryGetEnemySnapshot(4001, out EnemySimData enemy), Is.True);
Assert.That(enemy.Position.x, Is.EqualTo(0f).Within(0.0001f));
Assert.That(enemy.Position.y, Is.EqualTo(0f).Within(0.0001f));
Assert.That(enemy.Position.z, Is.EqualTo(0f).Within(0.0001f));
Assert.That(enemy.State, Is.EqualTo(0));
}
}
}