I was trying the swappable datasets part and it works perfectly on Android. But is somewhat glitchy in IOS. First of all the workflow of my project is as follows:
1.Download .xml and .dat from server.
2.Download objects to be augmented from server in the form of assetBundles.
3.Instantiate these models(On a Button click) and make it a child of an Empty gameObject (This part is important and I cannot consider to undo it.)
4.Load the downloaded DataSet.
5.And Make the Empty gameObject a child of DataSetTrackableBehaviour dstb.
This is the code that I am using:
DataSetTrackableBehaviour dstb = dataSet.GetTrackable(i);
GameObject go = dstb.gameObject;
go.AddComponent<DefaultTrackableEventHandler>();
GameObject parent = GameObject.Find ("Parent");
parent.transform.parent= dstb.transform;//make Parent GameObject a Child of ImageTarget for augmentation
parent.transform.localScale = new Vector3 (0.25f,0.25f,0.25f);
parent.transform.localPosition = new Vector3 (0.0f,0.0f,0.0f);
parent.transform.localRotation=Quaternion.identity;
parent.active=true;
dstb.gameObject.active=true;
}
imageTracker.ActivateDataSet(dataSet);
This setup works perfectly on Android. But in IOs when I instantiate my "Object to be Augmented", the model just appears on the screen and mounts the trackable only when its visible/found by ARCamera. Otherwise the model just sits on the screen idly. I did these scripts on PC for android and now I am trying to migrate my whole project to IOs. The Unity version on PC is 3.5.3f3 but On Mac the unity version is 3.5.2f2.Could that be a problem?
Please Help!
Can you post the code that you're using?
Also see - http://docs.unity3d.com/Documentation/ScriptReference/index.Script_compilation_28Advanced29.html to review calling between C# and JS.
and - http://answers.unity3d.com/questions/228518/desktopios-and-android-script-differences.html
Be sure to use explicit typing.