Log in or register to post comments

Display model for each target.

December 20, 2013 - 1:15am #1

I need to display 3d model for each target. I need to display cow for stones target, elephant for tarmac target. But when i open the camera the models are showing on the overlay. I tried with swap. But the swap when i click the button it remove the model. But i don't want to with button click. When i point to stones need to display only cow, when i point to tarmac need to display elephant. I use one scene. I choosed Dataset, ImageTarget for stones. Then drag the cow. Then choosed tarmac in Dataset then drag the elephant . But when i point to stones or tarmac the 2 models are showing. I searched for swap the model. Also i wrote the code for swap:

using UnityEngine;

using System.Collections;


public class ModelSwapper : MonoBehaviour {


// public TrackableBehaviour theTrackable;




private GameObject theTrackable;


private GameObject cube;


    private bool mSwapModel = false;


public Transform MyPrefab;


// Use this for initialization

void Start () {


theTrackable=GameObject.Find("Cow N050213");

          cube = GameObject.Find("Cow N050213");



if (theTrackable == null)


            Debug.Log ("Warning: Trackable not set !!");






// Update is called once per frame

void Update () {


if (mSwapModel && theTrackable != null) {


            mSwapModel = false;





void OnGUI() {

        if (GUI.Button (new Rect(50,50,120,40), "Swap Model")) {

            mSwapModel = true;




    private void SwapModel() 


        GameObject trackableGameObject = theTrackable.gameObject;


        //disable any pre-existing augmentation

        for (int i = 0; i < trackableGameObject.transform.GetChildCount(); i++) 


            Transform child = trackableGameObject.transform.GetChild(i);

            child.gameObject.active = false;            



        // Create a simple cube object 

        //GameObject model = GameObject.CreatePrimitive(PrimitiveType.Cube);


        if (MyPrefab != null)


            Transform model = GameObject.Instantiate(MyPrefab) as Transform;


            // Re-parent the model as child of the trackable gameObject

            model.parent = theTrackable.transform;


            // Adjust the position and scale 

            // so that it fits nicely on the target

            model.transform.localPosition = new Vector3(0,0.2f,0);

            model.transform.localRotation = Quaternion.identity;//you might need to adjust the rotation

            model.transform.localScale = new Vector3(0.01f, 0.01f, 0.01f);


            // Make sure it is active

            model.active = true;





Display model for each target.

December 21, 2013 - 12:52am #3

just use multiple Imagetargets and asign the Models as child to the imagetarget you want...

Display model for each target.

December 20, 2013 - 2:46am #2

Does anyone help this? Please urgent..

Log in or register to post comments