feature:添加开发者按钮

This commit is contained in:
2026-07-15 18:41:39 +08:00
parent 470efd00d1
commit 3a6df84f88
20 changed files with 1796 additions and 2105 deletions
+23 -602
View File
@@ -1,602 +1,23 @@
2026-7-15 17:08:45 - log: Load engine in D:\ProgramData\cocos\editors\Creator\3.8.3\resources\resources\3d\engine
2026-7-15 17:08:45 - log: Profile changed: engine (modules.includeModules: 2d,3d,animation,audio,base,gfx-webgl,marionette,meshopt,particle,physics-cannon,primitive,profiler,skeletal-animation,tween,ui)
2026-7-15 17:08:45 - log: Register native engine in D:\ProgramData\cocos\editors\Creator\3.8.3\resources\resources\3d\engine\native
2026-7-15 17:08:46 - log: Request namespace: device-list
2026-7-15 17:08:50 - log: [Funplay Cocos MCP] Extension loading...
2026-7-15 17:08:50 - log: [Funplay Cocos MCP] Runtime config loaded: host=127.0.0.1, port=8765, profile=full, autostart=true
2026-7-15 17:08:50 - log: [Funplay Cocos MCP] Autostart is enabled, starting MCP server.
2026-7-15 17:08:50 - log: [Funplay Cocos MCP] Starting MCP server...
2026-7-15 17:08:50 - log: [Funplay Cocos MCP] Runtime config loaded: host=127.0.0.1, port=8765, profile=full, autostart=true
2026-7-15 17:08:50 - log: [Funplay Cocos MCP Server] Creating HTTP server on 127.0.0.1:8765...
2026-7-15 17:08:50 - log: [Funplay Cocos MCP Server] Listening on http://127.0.0.1:8765/
2026-7-15 17:08:50 - log: [Funplay Cocos MCP] MCP server started at http://127.0.0.1:8765/
2026-7-15 17:08:50 - log: [Funplay Cocos MCP] If this tool saves you time, please consider giving it a Star on GitHub: https://github.com/FunplayAI/funplay-cocos-mcp
2026-7-15 17:08:50 - log: [Funplay Cocos MCP] Checking GitHub for newer Funplay Cocos MCP releases.
2026-7-15 17:08:52 - warn: [Funplay Cocos MCP Server] Rejected GET /: SSE GET streams are not supported.
2026-7-15 17:08:52 - warn: [Funplay Cocos MCP Server] Rejected GET /.well-known/oauth-protected-resource: SSE GET streams are not supported.
2026-7-15 17:08:52 - warn: [Funplay Cocos MCP Server] Rejected GET /.well-known/oauth-authorization-server: SSE GET streams are not supported.
2026-7-15 17:08:52 - warn: [Funplay Cocos MCP Server] Rejected GET /.well-known/openid-configuration: SSE GET streams are not supported.
2026-7-15 17:08:53 - info: [PreviewInEditor] preview process is ready
2026-7-15 17:08:53 - warn: failed to connect login server due to request timeout
2026-7-15 17:08:54 - log: [Scene] meshopt wasm decoder initialized
2026-7-15 17:08:54 - log: [Scene] [box2d]:box2d wasm lib loaded.
2026-7-15 17:08:54 - log: [Scene] [bullet]:bullet wasm lib loaded.
2026-7-15 17:08:54 - log: [Scene] [PHYSICS]: using builtin.
2026-7-15 17:08:54 - log: [Scene] Cocos Creator v3.8.3
2026-7-15 17:08:54 - info: [Scene] Forward render pipeline initialized.
2026-7-15 17:08:55 - log: [Scene] [PHYSICS]: switch from builtin to cannon.js.
2026-7-15 17:08:55 - log: [Scene] [PHYSICS2D]: switch from box2d-wasm to builtin.
2026-7-15 17:08:55 - warn: [Funplay Cocos MCP] Update check failed: Update check timed out after 5000ms.
2026-7-15 17:09:51 - warn: [Funplay Cocos MCP Server] Rejected GET /: SSE GET streams are not supported.
2026-7-15 17:09:51 - warn: [Funplay Cocos MCP Server] Rejected GET /.well-known/oauth-protected-resource: SSE GET streams are not supported.
2026-7-15 17:09:51 - warn: [Funplay Cocos MCP Server] Rejected GET /.well-known/oauth-authorization-server: SSE GET streams are not supported.
2026-7-15 17:09:51 - warn: [Funplay Cocos MCP Server] Rejected GET /.well-known/openid-configuration: SSE GET streams are not supported.
2026-7-15 17:18:43 - log: [PreviewInEditor] meshopt wasm decoder initialized
2026-7-15 17:18:43 - log: [PreviewInEditor] [box2d]:box2d wasm lib loaded.
2026-7-15 17:18:43 - log: [PreviewInEditor] [bullet]:bullet wasm lib loaded.
2026-7-15 17:18:43 - log: [PreviewInEditor] [PHYSICS]: using builtin.
2026-7-15 17:18:43 - log: [PreviewInEditor] Cocos Creator v3.8.3
2026-7-15 17:18:43 - info: [PreviewInEditor] Forward render pipeline initialized.
2026-7-15 17:18:44 - log: [PreviewInEditor] [PHYSICS]: switch from builtin to cannon.js.
2026-7-15 17:18:44 - log: [PreviewInEditor] [PHYSICS2D]: switch from box2d-wasm to builtin.
2026-7-15 17:18:45 - log: [PreviewInEditor] 修改屏幕分辨率 1.7777777777777777 Rect { x: 469, y: 0, width: 562.5, height: 1000 } View {
_id: 'view',
_priority: 0,
_executeInEditMode: false,
_callbackTable: [Object: null prototype] {
'design-resolution-changed': CallbackList {
callbackInfos: [Array],
isInvoking: false,
containCanceled: false
},
'canvas-resize': CallbackList {
callbackInfos: [Array],
isInvoking: false,
containCanceled: false
}
},
_designResolutionSize: Size { width: 1080, height: 1920 },
_scaleX: 0.5208333333333334,
_scaleY: 0.5208333333333334,
_viewportRect: Rect { x: 469, y: 0, width: 562.5, height: 1000 },
_visibleRect: Rect { x: 0, y: 0, width: 1080, height: 1919.9999999999998 },
_autoFullScreen: false,
_retinaEnabled: false,
_resizeCallback: null,
_resolutionPolicy: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: ShowAll { name: 'ShowAll', _result: [Object] }
},
_rpExactFit: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: ExactFit { name: 'ExactFit', _result: [Object] }
},
_rpShowAll: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: ShowAll { name: 'ShowAll', _result: [Object] }
},
_rpNoBorder: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: NoBorder { name: 'NoBorder', _result: [Object] }
},
_rpFixedHeight: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: FixedHeight { name: 'FixedHeight', _result: [Object] }
},
_rpFixedWidth: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: FixedWidth { name: 'FixedWidth', _result: [Object] }
}
}
2026-7-15 17:18:45 - log: [PreviewInEditor] 修改屏幕分辨率 适配屏幕宽高
2026-7-15 17:18:45 - log: [PreviewInEditor] 倒计时足够
2026-7-15 17:18:45 - log: [PreviewInEditor] 体力超过上线
2026-7-15 17:18:45 - log: [PreviewInEditor] 是否有类 { LevelConfig: [class LevelConfig], Weapon: [class Weapon] } LevelConfig [class LevelConfig]
2026-7-15 17:18:45 - log: [PreviewInEditor] 设置data LevelConfig LevelConfig
2026-7-15 17:18:45 - log: [PreviewInEditor] 是否有类 { LevelConfig: [class LevelConfig], Weapon: [class Weapon] } Weapon [class Weapon]
2026-7-15 17:18:45 - log: [PreviewInEditor] 设置data Weapon Weapon
2026-7-15 17:18:45 - log: [PreviewInEditor] 修改屏幕分辨率 0.6666666666666666 Rect { x: 0, y: 0, width: 1500, height: 1000 } View {
_id: 'view',
_priority: 0,
_executeInEditMode: false,
_callbackTable: [Object: null prototype] {
'design-resolution-changed': CallbackList {
callbackInfos: [Array],
isInvoking: false,
containCanceled: false
},
'canvas-resize': CallbackList {
callbackInfos: [Array],
isInvoking: false,
containCanceled: false
}
},
_designResolutionSize: Size { width: 1080, height: 1920 },
_scaleX: 1.3888888888888888,
_scaleY: 0.5208333333333334,
_viewportRect: Rect { x: 0, y: 0, width: 1500, height: 1000 },
_visibleRect: Rect { x: 0, y: 0, width: 1080, height: 1919.9999999999998 },
_autoFullScreen: false,
_retinaEnabled: false,
_resizeCallback: null,
_resolutionPolicy: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: ExactFit { name: 'ExactFit', _result: [Object] }
},
_rpExactFit: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: ExactFit { name: 'ExactFit', _result: [Object] }
},
_rpShowAll: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: ShowAll { name: 'ShowAll', _result: [Object] }
},
_rpNoBorder: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: NoBorder { name: 'NoBorder', _result: [Object] }
},
_rpFixedHeight: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: FixedHeight { name: 'FixedHeight', _result: [Object] }
},
_rpFixedWidth: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: FixedWidth { name: 'FixedWidth', _result: [Object] }
}
}
2026-7-15 17:18:45 - log: [PreviewInEditor] 修改屏幕分辨率 适配屏幕宽高
2026-7-15 17:18:45 - log: [PreviewInEditor] 修改屏幕分辨率 1.7790927021696252 Rect { x: 0, y: 0, width: 507, height: 902 } View {
_id: 'view',
_priority: 0,
_executeInEditMode: false,
_callbackTable: [Object: null prototype] {
'design-resolution-changed': CallbackList {
callbackInfos: [Array],
isInvoking: false,
containCanceled: false
},
'canvas-resize': CallbackList {
callbackInfos: [Array],
isInvoking: false,
containCanceled: false
}
},
_designResolutionSize: Size { width: 1080, height: 720 },
_scaleX: 0.46944444444444444,
_scaleY: 1.2527777777777778,
_viewportRect: Rect { x: 0, y: 0, width: 507, height: 902 },
_visibleRect: Rect { x: 0, y: 0, width: 1080, height: 720 },
_autoFullScreen: false,
_retinaEnabled: false,
_resizeCallback: null,
_resolutionPolicy: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: ExactFit { name: 'ExactFit', _result: [Object] }
},
_rpExactFit: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: ExactFit { name: 'ExactFit', _result: [Object] }
},
_rpShowAll: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: ShowAll { name: 'ShowAll', _result: [Object] }
},
_rpNoBorder: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: NoBorder { name: 'NoBorder', _result: [Object] }
},
_rpFixedHeight: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: FixedHeight { name: 'FixedHeight', _result: [Object] }
},
_rpFixedWidth: ResolutionPolicy {
name: 'ResolutionPolicy',
_containerStrategy: EqualToFrame { name: 'EqualToFrame' },
_contentStrategy: FixedWidth { name: 'FixedWidth', _result: [Object] }
}
}
2026-7-15 17:18:45 - log: [PreviewInEditor] 修改屏幕分辨率 适配屏幕宽度
2026-7-15 17:18:45 - log: [PreviewInEditor] [
Weapon {
id: 1,
prefab: 'Wep_HandGun',
point: 'HandGun',
coin: 0,
gunName: '沙漠之鹰',
spriteName: 'WEP_HandGun'
},
Weapon {
id: 2,
prefab: 'Wep_Rifle_1',
point: 'Rifle',
coin: 1000,
gunName: 'M4A1',
spriteName: 'WEP_M4A1 copy'
},
Weapon {
id: 3,
prefab: 'Wep_Rifle_2',
point: 'Rifle',
coin: 1000,
gunName: '隐匿杀手',
spriteName: 'WEP_Rifle_2'
},
Weapon {
id: 4,
prefab: 'Wep_Rifle_3',
point: 'Rifle',
coin: 1000,
gunName: '裁决者',
spriteName: 'WEP_Rifle_3'
},
Weapon {
id: 5,
prefab: 'Wep_Rifle_4',
point: 'Rifle',
coin: 1000,
gunName: '破晓突袭',
spriteName: 'WEP_Rifle_4'
},
Weapon {
id: 6,
prefab: 'Wep_Sniper_AWP',
point: 'Rifle',
coin: 2500,
gunName: 'AWP',
spriteName: 'WEP_Sniper_AWP'
},
Weapon {
id: 7,
prefab: 'Wep_Rifle_98k',
point: 'Rifle',
coin: 2500,
gunName: '98K',
spriteName: 'WEP_98k'
},
Weapon {
id: 8,
prefab: 'Wep_Sniper_01',
point: 'Rifle',
coin: 3000,
gunName: '星耀战隼',
spriteName: 'WEP_Sniper_1'
}
]
2026-7-15 17:18:45 - log: [PreviewInEditor] [class Weapon]
2026-7-15 17:18:45 - log: [PreviewInEditor] Weapon
2026-7-15 17:18:45 - log: [PreviewInEditor] Map(2) {
'LevelConfig' => [
LevelConfig {
id: 1,
env: 'env_level1',
enemy: 'enemy_level1',
aimFov: 25
},
LevelConfig {
id: 2,
env: 'env_level1',
enemy: 'enemy_level2',
aimFov: 25
},
LevelConfig {
id: 3,
env: 'env_level2_Muyou',
enemy: 'enemy_level3',
aimFov: 25
},
LevelConfig {
id: 4,
env: 'env_level2_Muyou',
enemy: 'enemy_level4',
aimFov: 25
},
LevelConfig {
id: 5,
env: 'env_level2_Muyou',
enemy: 'enemy_level5',
aimFov: 25
},
LevelConfig {
id: 6,
env: 'env_level3_Muyou',
enemy: 'enemy_level6',
aimFov: 25
},
LevelConfig {
id: 7,
env: 'env_level3_Muyou',
enemy: 'enemy_level7',
aimFov: 15
},
LevelConfig {
id: 8,
env: 'env_level4_Muyou',
enemy: 'enemy_level8',
aimFov: 15
},
LevelConfig {
id: 9,
env: 'env_level4_Muyou',
enemy: 'enemy_level9',
aimFov: 10
},
LevelConfig {
id: 10,
env: 'env_level5_Muyou',
enemy: 'enemy_level10',
aimFov: 10
},
LevelConfig {
id: 11,
env: 'env_level5_Muyou',
enemy: 'enemy_level11',
aimFov: 7
},
LevelConfig {
id: 12,
env: 'env_level3_Muyou',
enemy: 'enemy_level12',
aimFov: 20
},
LevelConfig {
id: 13,
env: 'env_level4_Muyou',
enemy: 'enemy_level13',
aimFov: 10
},
LevelConfig {
id: 14,
env: 'env_level2_Muyou',
enemy: 'enemy_level14',
aimFov: 10
},
LevelConfig {
id: 15,
env: 'env_level6_Muyou',
enemy: 'enemy_level15',
aimFov: 7
},
LevelConfig {
id: 16,
env: 'env_level6_Muyou',
enemy: 'enemy_level16',
aimFov: 7
},
LevelConfig {
id: 17,
env: 'env_level5_Muyou',
enemy: 'enemy_level17',
aimFov: 7
},
LevelConfig {
id: 18,
env: 'env_level4_Muyou',
enemy: 'enemy_level18',
aimFov: 10
},
LevelConfig {
id: 19,
env: 'env_level3_Muyou',
enemy: 'enemy_level19',
aimFov: 10
},
LevelConfig {
id: 20,
env: 'env_level4_Muyou',
enemy: 'enemy_level20',
aimFov: 10
},
LevelConfig {
id: 21,
env: 'env_level6_Muyou',
enemy: 'enemy_level21',
aimFov: 6
},
LevelConfig {
id: 22,
env: 'env_level6_Muyou',
enemy: 'enemy_level22',
aimFov: 6
},
LevelConfig {
id: 23,
env: 'env_level7_Muyou',
enemy: 'enemy_level23',
aimFov: 7
},
LevelConfig {
id: 24,
env: 'env_level7_Muyou',
enemy: 'enemy_level24',
aimFov: 7
},
LevelConfig {
id: 25,
env: 'env_level4_Muyou',
enemy: 'enemy_level25',
aimFov: 10
},
LevelConfig {
id: 26,
env: 'env_level4_Muyou',
enemy: 'enemy_level26',
aimFov: 10
},
LevelConfig {
id: 27,
env: 'env_level7_Muyou',
enemy: 'enemy_level27',
aimFov: 5
},
LevelConfig {
id: 28,
env: 'env_level7_Muyou',
enemy: 'enemy_level28',
aimFov: 5
},
LevelConfig {
id: 29,
env: 'env_level5_Muyou',
enemy: 'enemy_level29',
aimFov: 5
},
LevelConfig {
id: 30,
env: 'env_level6_Muyou',
enemy: 'enemy_level30',
aimFov: 5
},
LevelConfig {
id: 31,
env: 'env_level7_Muyou',
enemy: 'enemy_level31',
aimFov: 5
},
LevelConfig {
id: 32,
env: 'env_level5_Muyou',
enemy: 'enemy_level32',
aimFov: 10
},
LevelConfig {
id: 33,
env: 'env_level4_Muyou',
enemy: 'enemy_level33',
aimFov: 10
},
LevelConfig {
id: 34,
env: 'env_level4_Muyou',
enemy: 'enemy_level34',
aimFov: 5
},
LevelConfig {
id: 35,
env: 'env_level6_Muyou',
enemy: 'enemy_level35',
aimFov: 5
},
LevelConfig {
id: 36,
env: 'env_level7_Muyou',
enemy: 'enemy_level36',
aimFov: 5
},
LevelConfig {
id: 37,
env: 'env_level7_Muyou',
enemy: 'enemy_level37',
aimFov: 5
},
LevelConfig {
id: 38,
env: 'env_level2_Muyou',
enemy: 'enemy_level38',
aimFov: 10
},
LevelConfig {
id: 39,
env: 'env_level3_Muyou',
enemy: 'enemy_level39',
aimFov: 10
},
LevelConfig {
id: 40,
env: 'env_level4_Muyou',
enemy: 'enemy_level40',
aimFov: 5
}
],
'Weapon' => [
Weapon {
id: 1,
prefab: 'Wep_HandGun',
point: 'HandGun',
coin: 0,
gunName: '沙漠之鹰',
spriteName: 'WEP_HandGun'
},
Weapon {
id: 2,
prefab: 'Wep_Rifle_1',
point: 'Rifle',
coin: 1000,
gunName: 'M4A1',
spriteName: 'WEP_M4A1 copy'
},
Weapon {
id: 3,
prefab: 'Wep_Rifle_2',
point: 'Rifle',
coin: 1000,
gunName: '隐匿杀手',
spriteName: 'WEP_Rifle_2'
},
Weapon {
id: 4,
prefab: 'Wep_Rifle_3',
point: 'Rifle',
coin: 1000,
gunName: '裁决者',
spriteName: 'WEP_Rifle_3'
},
Weapon {
id: 5,
prefab: 'Wep_Rifle_4',
point: 'Rifle',
coin: 1000,
gunName: '破晓突袭',
spriteName: 'WEP_Rifle_4'
},
Weapon {
id: 6,
prefab: 'Wep_Sniper_AWP',
point: 'Rifle',
coin: 2500,
gunName: 'AWP',
spriteName: 'WEP_Sniper_AWP'
},
Weapon {
id: 7,
prefab: 'Wep_Rifle_98k',
point: 'Rifle',
coin: 2500,
gunName: '98K',
spriteName: 'WEP_98k'
},
Weapon {
id: 8,
prefab: 'Wep_Sniper_01',
point: 'Rifle',
coin: 3000,
gunName: '星耀战隼',
spriteName: 'WEP_Sniper_1'
}
]
}
2026-7-15 17:18:45 - log: [PreviewInEditor] 刷新 1 1 1 0
2026-7-15 17:23:57 - warn: [Funplay Cocos MCP Server] Rejected GET /: SSE GET streams are not supported.
2026-7-15 17:23:57 - warn: [Funplay Cocos MCP Server] Rejected GET /.well-known/oauth-protected-resource: SSE GET streams are not supported.
2026-7-15 17:23:57 - warn: [Funplay Cocos MCP Server] Rejected GET /.well-known/oauth-authorization-server: SSE GET streams are not supported.
2026-7-15 17:23:57 - warn: [Funplay Cocos MCP Server] Rejected GET /.well-known/openid-configuration: SSE GET streams are not supported.
2026-7-15 17:24:06 - warn: [Funplay Cocos MCP Server] Rejected GET /: SSE GET streams are not supported.
2026-7-15 17:24:06 - warn: [Funplay Cocos MCP Server] Rejected GET /.well-known/oauth-protected-resource: SSE GET streams are not supported.
2026-7-15 17:24:06 - warn: [Funplay Cocos MCP Server] Rejected GET /.well-known/oauth-authorization-server: SSE GET streams are not supported.
2026-7-15 17:24:06 - warn: [Funplay Cocos MCP Server] Rejected GET /.well-known/openid-configuration: SSE GET streams are not supported.
2026-7-16 10:25:15 - log: Load engine in D:\ProgramData\cocos\editors\Creator\3.8.3\resources\resources\3d\engine
2026-7-16 10:25:16 - log: Profile changed: engine (modules.includeModules: 2d,3d,animation,audio,base,gfx-webgl,marionette,meshopt,particle,physics-cannon,primitive,profiler,skeletal-animation,tween,ui)
2026-7-16 10:25:16 - log: Register native engine in D:\ProgramData\cocos\editors\Creator\3.8.3\resources\resources\3d\engine\native
2026-7-16 10:25:17 - log: Request namespace: device-list
2026-7-16 10:25:22 - log: [Funplay Cocos MCP] Extension loading...
2026-7-16 10:25:22 - log: [Funplay Cocos MCP] Runtime config loaded: host=127.0.0.1, port=8765, profile=full, autostart=true
2026-7-16 10:25:22 - log: [Funplay Cocos MCP] Autostart is enabled, starting MCP server.
2026-7-16 10:25:22 - log: [Funplay Cocos MCP] Starting MCP server...
2026-7-16 10:25:22 - log: [Funplay Cocos MCP] Runtime config loaded: host=127.0.0.1, port=8765, profile=full, autostart=true
2026-7-16 10:25:22 - log: [Funplay Cocos MCP Server] Creating HTTP server on 127.0.0.1:8765...
2026-7-16 10:25:22 - log: [Funplay Cocos MCP Server] Listening on http://127.0.0.1:8765/
2026-7-16 10:25:22 - log: [Funplay Cocos MCP] MCP server started at http://127.0.0.1:8765/
2026-7-16 10:25:22 - log: [Funplay Cocos MCP] If this tool saves you time, please consider giving it a Star on GitHub: https://github.com/FunplayAI/funplay-cocos-mcp
2026-7-16 10:25:22 - log: [Funplay Cocos MCP] Checking GitHub for newer Funplay Cocos MCP releases.
2026-7-16 10:25:23 - log: [Funplay Cocos MCP] Update check completed: current=0.4.2, latest=0.4.2
2026-7-16 10:25:26 - log: [Scene] meshopt wasm decoder initialized
2026-7-16 10:25:26 - log: [Scene] [box2d]:box2d wasm lib loaded.
2026-7-16 10:25:26 - log: [Scene] [bullet]:bullet wasm lib loaded.
2026-7-16 10:25:26 - log: [Scene] [PHYSICS]: using builtin.
2026-7-16 10:25:26 - log: [Scene] Cocos Creator v3.8.3
2026-7-16 10:25:26 - info: [Scene] Forward render pipeline initialized.
2026-7-16 10:25:26 - log: [Scene] [PHYSICS]: switch from builtin to cannon.js.
2026-7-16 10:25:26 - log: [Scene] [PHYSICS2D]: switch from box2d-wasm to builtin.