Lens Studio技术咨询:如何获取点击图片的名称或属性?
在Lens Studio中用JavaScript保存点击图片的信息
步骤1:给图片添加交互支持
选中场景里的每个可点击图片对象,完成以下设置:
- 在Inspector面板勾选Interactable,确保图片能响应点击。
- 给图片添加Tap Trigger组件(右键对象 → Add Component → Interaction → Tap Trigger),用于触发点击事件。
- 给图片添加Script组件,绑定自定义JS代码。
步骤2:定义全局存储变量(可选,跨脚本共享用)
如果需要在多个脚本里访问点击信息,可创建全局数据脚本:
- 在Resources文件夹新建
GlobalData.js,内容如下:
// 存储最后一次点击的图片信息 export let lastClickedImage = null; // 存储所有点击历史的数组 export let clickedImagesHistory = [];
步骤3:编写点击事件处理脚本
给每个可点击图片绑定如下脚本(可直接复制到图片的Script组件,或作为通用脚本挂载):
// 导入全局变量(无需跨脚本共享可跳过此行,直接在脚本内定义变量) import { lastClickedImage, clickedImagesHistory } from './GlobalData'; // 获取当前图片的场景对象 const currentImage = script.getSceneObject(); // 监听Tap点击事件 script.createEvent("TapEvent").bind(() => { // 组装要保存的图片信息,按需自定义字段 const imageInfo = { name: currentImage.name, // 图片对象名称 id: currentImage.id, // 对象唯一ID customTag: currentImage.getCustomData("imageTag") // 自定义属性(需先在Inspector添加) }; // 更新全局变量 lastClickedImage = imageInfo; clickedImagesHistory.push(imageInfo); // 控制台调试(可选) print(`点击了图片:${imageInfo.name}`); print(`累计点击次数:${clickedImagesHistory.length}`); });
步骤4:验证与使用存储的信息
如果要在UI等地方展示点击信息,可编写读取脚本:
import { lastClickedImage } from './GlobalData'; // 获取UI文本组件 const displayText = script.getSceneObject().getComponent("Text"); // 实时更新文本显示 script.createEvent("UpdateEvent").bind(() => { if (lastClickedImage) { displayText.text = `最后点击:${lastClickedImage.name}`; } else { displayText.text = "未点击任何图片"; } });
注意事项
- 必须开启图片对象的
Interactable,否则点击事件不会触发。 - 自定义属性
imageTag需要提前在图片Inspector面板添加(点击Add Custom Data,选择类型后设置键名和值)。 - 无需跨脚本共享时,可直接在单个脚本内定义变量,不用创建
GlobalData.js。
内容的提问来源于stack exchange,提问作者Edanur Akbas
相关产品推荐
相关产品推荐

