public void triggerTutorial(int tutorialID) { tutorialUI.setTutorial(tutorialTexts[tutorialID]); activeTutorial = tutorialID; Debug.Log("Triggering: " + tutorialID); switch (tutorialID) { case 0: //dog moves to player player.GetComponent <CharacterMovement>().CutsceneLock = true; ci.PermitAction(0, false); ci.PermitAction(1, false); ci.PermitAction(2, false); ci.PermitAction(3, false); dog.StartAction(new Call(dog.GetComponent <Dog>(), player.transform)); finishTutorial(activeTutorial); break; case 1: //pet dog ci.PermitAction(2, true); //tutorial 1 starting break; case 2: //dog go to waypoint ci.PermitAction(2, false); dog.StartAction(new GoStraightToPosition(dog.GetComponent <Dog>(), dogWaypoint.position)); //tutorial 2 starting break; case 3: ci.PermitAction(1, true); //enable call dog thing break; case 4: ci.PermitAction(1, false); ci.PermitAction(3, true); //pick up dog enable break; } }
IEnumerator blabla(Dog dog, DogAI dogai, DogAction dogaction) { bool dogready = false; while (!dogready) { dogready = dogai.gameObject.GetComponent <Dog>().IsIdle(); yield return(null); } dogai.StartAction(dogaction); StartCoroutine(blabla(dog, dogai, new Rest(dog, -1))); }
private void OnTriggerEnter(Collider other) { if (other.tag == "Player") { Vector3 ilaTelPos = other.transform.position + -other.transform.right * 20; Vector3 ilaSitPos = other.transform.position + -other.transform.right * 1.5f + other.transform.forward * 3f; Dog dog = GameObject.FindGameObjectWithTag("Dog").GetComponent <Dog>(); Debug.Log("Tjaba"); //dog.gameObject.transform.position = ilaTelPos; DogAI dogai = dog.gameObject.GetComponent <DogAI>(); dogai.StartAction(new GoStraightToPosition(dog, ilaTelPos)); //dogai.StartAction(new GoStraightToPosition(dog, ilaSitPos)); StartCoroutine(blabla(dog, dogai, new GoStraightToPosition(dog, ilaSitPos))); } }
void Update() { if (savedAction != null) { Debug.Log("saved action " + savedAction.ToString()); } Debug.DrawLine(transform.position, transform.position + transform.forward * 3, Color.yellow); if (itemHand != null && itemHand.GetItemInHand() != null && itemHand.GetItemInHand().name == "Stick") { if (currentAction != null && currentAction.GetImportance() == DogAction.Importance.HIGH) { savedAction = currentAction; } if (Vector3.Distance(transform.position, player.position) < 3) { if (!isWaitingForFetch) { ai.StartAction(new WaitForFetch(this, player)); } } else { ai.StartAction(new FollowPlayer(this, player)); } } if (currentAction != null) { currentAction.UpdateAction(); } else if (savedAction != null) { currentAction = savedAction; currentAction.StartAction(); savedAction = null; } }
public void NextAction() { dogAI.StartAction(actions [actionCount]); actionCount++; }