我正在尝试为AR.JS使用一个自定义标记。但是,在按照说明创建了一个自定义标记,然后更改了标记预设后,它仍然不起作用。有没有关于如何正确实现的想法?
<a-marker preset="custom" type="pattern" url="img/pattern-marker.patt">
<a-box position='0 0.5 0' material='color: black;' soundhandler></a-box>
</a-marker>
这是不是标记中的正确实现?作为参考,我使用了一个非常简单的黑白圆形图像进行测试,它仍然不起作用。还需要编写其他代码来注册自定义标记模式吗?
发布于 2018-06-02 19:43:26
我已经在这上面花了很多年了!最后弄清楚这是几个问题。
模式1.preset=“”
首先,如果您查看原始的js脚本:https://jeromeetienne.github.io/AR.js/aframe/build/aframe-ar.js,您会注意到else if
中没有preset="custom"
。例如,搜索else if( _this.data.preset === 'kanji' ){
。
然而,这里有一个preset="pattern"
。因此,在您的示例中,请替换:
<a-marker preset="custom" type="pattern" url="img/pattern-marker.patt"> <a-box position='0 0.5 0' material='color: black;' soundhandler></a-box> </a-marker>
使用
<a-marker preset="pattern" type="pattern" url="img/pattern-marker.patt"> <a-box position='0 0.5 0' material='color: black;' soundhandler></a-box> </a-marker>
2.将.patt上传到您的GitHub,以便它可以解析文件
其次,我的.patt没有被本地获取,所以url="img/pattern-marker.patt"
不能工作。将此.patt
文件上推到GitHub,然后使用raw.githubusercontent引用它。
示例
您可以使用我的模式对此进行测试。https://raw.githubusercontent.com/lbelfield/augmented-reality/master/src/components/trainTicket/train-ticket.patt。
React-Web-AR:这不适用于您,但如果有人像我一样使用React-Web-AR,请使用以下代码:
<Marker parameters={{ preset: 'pattern', type: 'pattern', patternUrl: 'https://raw.githubusercontent.com/lbelfield/augmented-reality/master/src/components/trainTicket/train-ticket.patt', url: 'https://raw.githubusercontent.com/lbelfield/augmented-reality/master/src/components/trainTicket/train-ticket.patt' }}>
https://stackoverflow.com/questions/50065104
复制相似问题