Lens Studio中script.remoteServiceModule未定义问题的解决咨询
解决Lens Studio中script.remoteServiceModule未定义的问题
问题根源
脚本里的@input注释只是声明了需要绑定的资源类型,但你没有在Lens Studio的可视化面板中将实际的Remote Service Module实例绑定到脚本的对应字段,导致代码运行时script.remoteServiceModule找不到对应实例。
具体解决步骤
创建Remote Service Module资源
在Lens Studio的Resources面板空白处右键,选择Create > Remote Service Module。选中新创建的资源,在Inspector面板里配置你的API基础域名,同时根据API地址类型(HTTP/HTTPS)开启对应的网络权限。绑定资源到脚本字段
在Objects面板找到挂载了目标脚本的对象,选中它打开Inspector面板。找到你的脚本组件,下方会出现一个标注为remoteServiceModule的输入框(由脚本里的// @input Asset.RemoteServiceModule remoteServiceModule注释自动生成)。将Resources面板里刚创建的Remote Service Module拖入这个输入框,完成绑定。
额外检查项
- 确认脚本的
@input注释格式无误:开头是// @input,类型Asset.RemoteServiceModule和变量名remoteServiceModule拼写正确。 - 测试时确保设备/预览窗口能正常访问配置的API地址,避免网络权限或跨域问题干扰调试。
- Lens Studio 4.55.1完全支持RemoteServiceModule,无需考虑版本兼容问题。
优化后的脚本(可选)
可以补充请求方法、头部信息,完善错误处理逻辑:
// @input Asset.RemoteServiceModule remoteServiceModule var request = global.RemoteApiRequest.create(); request.endpoint = "start"; request.method = "GET"; // 根据API需求设置POST等方法 request.headers = { "Content-Type": "application/json" }; script.remoteServiceModule.performApiRequest(request, function(response){ // 兼容SnapChat自定义状态码和常规HTTP状态码 if([1, 200].indexOf(response.statusCode) === -1){ print("Request Failed with code: " + String(response.statusCode)); print("Response detail: " + JSON.stringify(response.data)); return; } print("Request succeeded! Response data: " + JSON.stringify(response.data)); });
内容的提问来源于stack exchange,提问作者Mauro Sala
相关产品推荐
相关产品推荐

