新增syncvar高级特性,使用protobuf定义
This commit is contained in:
40
packages/network/tests/SyncVarE2ESimple.test.ts
Normal file
40
packages/network/tests/SyncVarE2ESimple.test.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import 'reflect-metadata';
|
||||
import { SyncVar } from '../src/SyncVar';
|
||||
import { createSyncVarProxy } from '../src/SyncVar/SyncVarProxy';
|
||||
import { NetworkComponent } from '../src/NetworkComponent';
|
||||
|
||||
// 简化的测试用网络组件
|
||||
class SimpleTestComponent extends NetworkComponent {
|
||||
@SyncVar()
|
||||
public health: number = 100;
|
||||
|
||||
@SyncVar()
|
||||
public name: string = 'TestPlayer';
|
||||
}
|
||||
|
||||
describe('SyncVar端到端简单测试', () => {
|
||||
test('基本的SyncVar代理创建', () => {
|
||||
const component = new SimpleTestComponent();
|
||||
const proxiedComponent = createSyncVarProxy(component) as SimpleTestComponent;
|
||||
|
||||
expect(proxiedComponent).toBeDefined();
|
||||
expect(proxiedComponent.health).toBe(100);
|
||||
expect(proxiedComponent.name).toBe('TestPlayer');
|
||||
|
||||
// 修改值应该能正常工作
|
||||
proxiedComponent.health = 80;
|
||||
expect(proxiedComponent.health).toBe(80);
|
||||
});
|
||||
|
||||
test('SyncVar变化记录', () => {
|
||||
const component = createSyncVarProxy(new SimpleTestComponent()) as SimpleTestComponent;
|
||||
|
||||
// 修改值
|
||||
component.health = 75;
|
||||
component.name = 'Hero';
|
||||
|
||||
// 检查是否有变化记录
|
||||
const changes = component.getSyncVarChanges();
|
||||
expect(changes.length).toBeGreaterThan(0);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user