132 lines
4.2 KiB
TypeScript
132 lines
4.2 KiB
TypeScript
declare const Editor: any;
|
|
|
|
/**
|
|
* 手动测试脚本
|
|
* 可以在 Cocos Creator 控制台中执行测试
|
|
*/
|
|
|
|
export async function testSceneTools() {
|
|
console.log('=== Testing Scene Tools ===');
|
|
|
|
try {
|
|
// 1. 获取场景信息
|
|
console.log('1. Getting scene info...');
|
|
const sceneInfo = await Editor.Message.request('scene', 'get-scene-info');
|
|
console.log('Scene info:', sceneInfo);
|
|
|
|
// 2. 创建节点
|
|
console.log('\n2. Creating test node...');
|
|
const createResult = await Editor.Message.request('scene', 'create-node', {
|
|
name: 'TestNode_' + Date.now(),
|
|
type: 'cc.Node'
|
|
});
|
|
console.log('Create result:', createResult);
|
|
|
|
if (createResult && createResult.uuid) {
|
|
const nodeUuid = createResult.uuid;
|
|
|
|
// 3. 查询节点
|
|
console.log('\n3. Querying node...');
|
|
const nodeInfo = await Editor.Message.request('scene', 'query-node', {
|
|
uuid: nodeUuid
|
|
});
|
|
console.log('Node info:', nodeInfo);
|
|
|
|
// 4. 设置节点属性
|
|
console.log('\n4. Setting node position...');
|
|
await Editor.Message.request('scene', 'set-node-property', {
|
|
uuid: nodeUuid,
|
|
path: 'position',
|
|
value: { x: 100, y: 200, z: 0 }
|
|
});
|
|
console.log('Position set successfully');
|
|
|
|
// 5. 添加组件
|
|
console.log('\n5. Adding Sprite component...');
|
|
const addCompResult = await Editor.Message.request('scene', 'add-component', {
|
|
uuid: nodeUuid,
|
|
component: 'cc.Sprite'
|
|
});
|
|
console.log('Component added:', addCompResult);
|
|
|
|
// 6. 查询组件
|
|
console.log('\n6. Querying component...');
|
|
const compInfo = await Editor.Message.request('scene', 'query-node-component', {
|
|
uuid: nodeUuid,
|
|
component: 'cc.Sprite'
|
|
});
|
|
console.log('Component info:', compInfo);
|
|
|
|
// 7. 删除节点
|
|
console.log('\n7. Removing test node...');
|
|
await Editor.Message.request('scene', 'remove-node', {
|
|
uuid: nodeUuid
|
|
});
|
|
console.log('Node removed successfully');
|
|
}
|
|
|
|
} catch (error) {
|
|
console.error('Test failed:', error);
|
|
}
|
|
}
|
|
|
|
export async function testAssetTools() {
|
|
console.log('\n=== Testing Asset Tools ===');
|
|
|
|
try {
|
|
// 1. 查询资源
|
|
console.log('1. Querying image assets...');
|
|
const assets = await Editor.Message.request('asset-db', 'query-assets', {
|
|
pattern: '**/*.png',
|
|
ccType: 'cc.ImageAsset'
|
|
});
|
|
console.log('Found assets:', assets?.length || 0);
|
|
|
|
// 2. 获取资源信息
|
|
console.log('\n2. Getting asset database info...');
|
|
const assetInfo = await Editor.Message.request('asset-db', 'query-asset-info', {
|
|
uuid: 'db://assets'
|
|
});
|
|
console.log('Asset info:', assetInfo);
|
|
|
|
} catch (error) {
|
|
console.error('Test failed:', error);
|
|
}
|
|
}
|
|
|
|
export async function testProjectTools() {
|
|
console.log('\n=== Testing Project Tools ===');
|
|
|
|
try {
|
|
// 1. 获取项目信息
|
|
console.log('1. Getting project info...');
|
|
const projectInfo = await Editor.Message.request('project', 'query-info');
|
|
console.log('Project info:', projectInfo);
|
|
|
|
// 2. 检查构建能力
|
|
console.log('\n2. Checking build capability...');
|
|
const canBuild = await Editor.Message.request('project', 'can-build');
|
|
console.log('Can build:', canBuild);
|
|
|
|
} catch (error) {
|
|
console.error('Test failed:', error);
|
|
}
|
|
}
|
|
|
|
export async function runAllTests() {
|
|
console.log('Starting MCP Server Tools Test...\n');
|
|
|
|
await testSceneTools();
|
|
await testAssetTools();
|
|
await testProjectTools();
|
|
|
|
console.log('\n=== All tests completed ===');
|
|
}
|
|
|
|
// 导出到全局,方便在控制台调用
|
|
(global as any).MCPTest = {
|
|
testSceneTools,
|
|
testAssetTools,
|
|
testProjectTools,
|
|
runAllTests
|
|
}; |