我正在尝试通过以下链接使我的预制件在运行时出现在我的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);
}
}
}
这里是日志和运行场景时层次结构上显示的内容
希望我能在这里得到一些帮助......工作人员