private IEnumerator RemoveAction(randomAction actionToRemove) { actionToRemove.isDone = false; yield return(new WaitForSeconds(actionToRemove.waitFor)); doAction -= actionToRemove.toDoAction; actionToRemove.isDone = true; }
private void BehaviourAction() { randomAction action = rand.GetRandomValue(); if (action.isDone) { doAction += action.toDoAction; StartCoroutine(RemoveAction(action)); } Debug.Log("Number of listeners: " + doAction.GetInvocationList().Length); }
private void ChaseTarget() { //float distance = Vector2.Distance(gameObject.transform.position, target.position); pirate.AddForce(direction * 5); pirate.velocity = ClampVelocity(pirate.velocity); randomAction action = rand.GetRandomValue(); if (action.toDoAction.Equals((Action)Fire) && action.isDone) { doAction += action.toDoAction; StartCoroutine(RemoveAction(action)); } }