Unity Vuforia无法将子项作为图像目标出现

时间:2016-08-10 08:20:53

标签: unity3d instantiation vuforia

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

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

public GameObject[] prefabModels;

我的问题是在检测到我的图像目标后,我的所有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);

        }

    }

}

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

希望我能在这里得到一些帮助......工作人员

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

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

以下是预制件检查员面板在运行时的屏幕截图 enter image description here

enter image description here