检测到目标时,与vuforia显示2d图像的Unity

时间:2017-02-12 07:15:39

标签: unity5 augmented-reality vuforia

我对如何在检测到的标记上显示简单的2d图像有一个疑问。我已经按照一些教程来显示3D模型,它工作正常。 3d没有问题。当我想添加普通的2d object-> sprite时,问题就出现了。当我添加简单的精灵时,我无法添加纹理,当我插入UI图像时,它与画布一起添加,并且在检测到目标时不显示。到目前为止,编辑器上的原始图像被放置,以至于很难找到它。如果有人能突出我正确的方向,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

ImageTarget下,您需要使用可跟踪事件处理程序脚本。默认情况下为DefaultTrackableEventHandler

你可以找到两种方法: OnTrackingFound()& OnTrackingLost()。由于这些方法可以启用或禁用CollidersRenderes,因此在检测到目标时显示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");
    }

这对我的情况有帮助。