Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Three.js TextGeometry Wordwrap-作为组拖动_Javascript_Three.js - Fatal编程技术网

Javascript Three.js TextGeometry Wordwrap-作为组拖动

Javascript Three.js TextGeometry Wordwrap-作为组拖动,javascript,three.js,Javascript,Three.js,我在一个全景网站工作,希望能够添加一个文本标签,可以拖动到正确的位置。这是一个球形全景图,展示了它的价值:)接下来的4段是很好的信息,特别是如果你像我一样陷入困境,但真正的问题从下面开始+++ 我最初尝试使用常规画布技巧,但画布垂直太大。例如,如果我想说“Hello World”,它的宽度可能是120像素,高度可能是15像素,但“透明”画布的高度可能是150像素,这将与其他文本对象重叠,而不是全景 另一个问题是,如果我想让它不仅仅是一行,比如说,如果我想说“你看到这股很酷的气流了吗?”可以分成2

我在一个全景网站工作,希望能够添加一个文本标签,可以拖动到正确的位置。这是一个球形全景图,展示了它的价值:)接下来的4段是很好的信息,特别是如果你像我一样陷入困境,但真正的问题从下面开始+++

我最初尝试使用常规画布技巧,但画布垂直太大。例如,如果我想说“Hello World”,它的宽度可能是120像素,高度可能是15像素,但“透明”画布的高度可能是150像素,这将与其他文本对象重叠,而不是全景

另一个问题是,如果我想让它不仅仅是一行,比如说,如果我想说“你看到这股很酷的气流了吗?”可以分成2-3行。在玩了它之后,我让wordwrapping同时在画布和精灵上工作,但最终画布问题让我失去了它

在那之后,我尝试了Sprites,它在视觉上不与其他文本对象重叠,但画布尺寸仍然太大,这在onMouseOver相交处产生了问题,如果过于靠近,可能会开始拖动错误的对象,或者,如果你只是想左右摇动/倾斜相机来观看全景,你可能会无意中点击过大的画布

我曾多次尝试让TextGeometry正常工作,但始终出现以下错误“THREE.TextGeometry:font参数不是THREE.font的实例”。直到我最终发现API在最新版本中发生了更改,这使得web上的所有示例都无用。在我发现API的变化后,我能够让它工作,这里有一把小提琴给任何需要它的人:

++++++++++

在我的应用程序中,上一个使用TextGeometry的示例效果很好,但仅当它是单行时。当我循环并执行下一行时,它将成为一个额外的对象,您可以单独拖动它,当我希望能够单击它来编辑文本、大小、颜色等时,这将成为一个问题

我不知道如何处理将所有行作为一个组拖动的问题。当我将组添加到
对象
数组中时,我希望它能起作用,这是我以前处理线条的方式,但它不起作用,所以我想如果它可以包装在一个透明的框中,面压在侧面,然后使用透明框作为拖动手柄,那将是一件非常棒的事情

以下是使用wordwrap的示例:

悬而未决的问题是拖动组,并使其在拖动时从组的中心而不是角落面向摄影机
group.geometry.center()
我本以为它可以工作,就像它是单行时一样,但它还是有问题