private void OnTrackingFound() { Renderer[] rendererComponents = GetComponentsInChildren <Renderer>(true); Collider[] colliderComponents = GetComponentsInChildren <Collider>(true); // Enable rendering: foreach (Renderer component in rendererComponents) { component.enabled = true; } // Enable colliders: foreach (Collider component in colliderComponents) { component.enabled = true; } Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found"); if (!objectFound)// se ha trovato l'oggetto deve aspettare la transizione nello stato successivo { Debug.Log("Sto ricercando il pezzo dello stato " + State_Machine.getSubStateNumber()); switch (State_Machine.getSubStateNumber()) { case 0: //Ricerca dell'obiettivo corrente if (mTrackableBehaviour.name.Equals(State_Machine.getPhaseList()[State_Machine.getPhaseNumber()].getCurrTarget().name)) { //controllo se ho trovato il target corrente della fase State_Machine.setCurrentTargetFlag(true); objectFound = true; State_Machine.nextState(); } break; case 1: //Ricerca dell'obiettivo finale if (mTrackableBehaviour.name.Equals(State_Machine.getPhaseList()[State_Machine.getPhaseNumber()].getNextTarget().name)) //controllo se lo ho trovato il target finale della fase { State_Machine.setNextTargetFlag(true); objectFound = true; State_Machine.nextState(); } if (mTrackableBehaviour.name.Equals(State_Machine.getPhaseList()[State_Machine.getPhaseNumber()].getSingleObject().name)) //controllo se lo ho trovato l'oggetto singolo della fase { State_Machine.setSingleObjectFlag(true); } break; default: //default break; } } }
// Update is called once per frame void Update() { if (playAnim) { //gli oggetti sono stati inseriti in ordine inverso switch (State_Machine.getPhaseNumber()) { case 0: //Cone and metal ring animations if (!gameobjs[4].activeSelf) { gameobjs[4].SetActive(true); gameobjs[3].SetActive(true); } anim.Play("pezzo4-5", -1, 0f); break; case 1: //Grinding tool animation if (!gameobjs[2].activeSelf) { gameobjs[2].SetActive(true); } anim.Play("pezzo3", -1, 0f); break; case 3: //Flange and screw animations if (!gameobjs[1].activeSelf) { gameobjs[1].SetActive(true); gameobjs[0].SetActive(true); } anim.Play("pezzo1-2", -1, 0f); // Debug.Log(gameobjs[1].name); //.Play("pezzo1", -1, 0f); // Debug.Log(gameobjs[0].name); break; } playAnim = false; } else { //anim.Play("idle", -1, 0f); } }