我对如何在检测到的标记上显示简单的2d图像有一个疑问。我已经按照一些教程来显示3D模型,它工作正常。 3d没有问题。当我想添加普通的2d object-> sprite时,问题就出现了。当我添加简单的精灵时,我无法添加纹理,当我插入UI图像时,它与画布一起添加,并且在检测到目标时不显示。到目前为止,编辑器上的原始图像被放置,以至于很难找到它。如果有人能突出我正确的方向,我将不胜感激。
答案 0 :(得分:0)
在ImageTarget
下,您需要使用可跟踪事件处理程序脚本。默认情况下为DefaultTrackableEventHandler
。
你可以找到两种方法:
OnTrackingFound()
& OnTrackingLost()
。由于这些方法可以启用或禁用Colliders
和Renderes
,因此在检测到目标时显示3D模型没有问题。要显示像Canvas或Sprite这样的2D对象,您需要修改这些方法和几行。
例如:
private void OnTrackingFound() {
Renderer[] rendererComponents = GetComponentsInChildren<Renderer>(true);
Collider[] colliderComponents = GetComponentsInChildren<Collider>(true);
Canvas[] canvasComponents = GetComponentsInChildren<Canvas>(true);
foreach (Canvas component in canvasComponents) {
component.enabled = true;
}
// Enable rendering:
foreach (Renderer component in rendererComponents) {
component.enabled = true;
}
// Enable colliders:
foreach (Collider component in colliderComponents) {
component.enabled = true;
}
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found");
}
这对我的情况有帮助。