【问题标题】:Unity Vuforia can't make child as an image target to appearUnity Vuforia 无法让孩子作为图像目标出现
【发布时间】:2016-08-12 23:48:06
【问题描述】:

我正在尝试通过点击此链接使我的预制件在运行时出现在我的 imagetarget 上 vuforia instantiate prefab on imagetarget dynamically

唯一的区别是我希望能够拖动我创建的一些预制件,而不是教程中显示的一个预制件。

public GameObject[] prefabModels;

我的问题是,即使在检测到我的 imagetarget 之后,我的所有 3d 预制件都没有显示出来。

此代码附加到我的 imagetarget 对象

using System;
using UnityEngine;
using System.Collections;
using Vuforia;

public class ImageTargetMgr : MonoBehaviour, ITrackableEventHandler {

private TrackableBehaviour mTrackableBehaviour;

public GameObject[] prefabModels;

// Use this for initialization
void Start () {                
    mTrackableBehaviour = GetComponent<TrackableBehaviour>();

    if (mTrackableBehaviour)
    {
        mTrackableBehaviour.RegisterTrackableEventHandler(this);
    }        
}

// Update is called once per frame
void Update () {

}

public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus)
{
    if (newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
    {
        OnTrackingFound();
    }
    else
    {
        OnTrackingLost();
    }
}

private void OnTrackingLost()
{

}

private void OnTrackingFound()
{
    Debug.Log("Image Target Found!");
    foreach (GameObject o in prefabModels)
    {
        if (o != null)
        {
            Debug.Log("Currently instantiated models is " + o.name);

            GameObject myPrefab = Instantiate(o, Vector3.zero, Quaternion.identity) as GameObject;

            myPrefab.transform.parent = mTrackableBehaviour.transform;
            myPrefab.transform.localPosition = new Vector3(0.0f, 10.0f, 0.0f);
            myPrefab.transform.localRotation = Quaternion.identity;
            //o.transform.localScale = new Vector3(1000.0f, 1000.0f, 1000.0f);

            myPrefab.gameObject.SetActive(true);

        }

    }

}

这里是运行场景时的日志和层次结构中显示的内容

希望我能在这里得到一些帮助..cheers

【问题讨论】:

  • 您是否为 prefabModels 数组分配了任何预制件?
  • 是的...我已经分配了一些预制件
  • 它是否调用过 OnTrackingFound ?并注销“找到图像目标!”和“当前实例化的模型是”?
  • 确实如此。 OnTackingFound 被解雇了,但不知何故那些预制件没有出现。检查日志并打印出两个测试字符串。
  • 我注意到有一个 Glowtab(Clone) 实例,如第二张图片所示。但是该对象似乎没有在图像目标上呈现。

标签: unity3d instantiation vuforia


【解决方案1】:

在我将 Box Collider 组件添加到 prefab 对象后,问题终于解决了。我还必须调整一些转换设置。

以下是运行时预制件检查器面板的屏幕截图

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多