public void AgregarItemsACola() { Assert.AreEqual(0, _queueManager.Count()); _queueManager.Add("Hola mundo"); _queueManager.Add("Adios mundo"); Assert.AreEqual(2, _queueManager.Count()); }
// Start is called before the first frame update void Start() { transform.parent = null; // refreshTargets += UpdateTarget; queueManager = GameObject.FindGameObjectWithTag("DriveThruWindow").GetComponent <QueueManager>(); index = queueManager.Add(this); agent = GetComponent <NavMeshAgent>(); if (!window) { window = GameObject.FindGameObjectWithTag("DriveThruWindow").transform; } if (!exit) { exit = GameObject.FindGameObjectWithTag("CarExit").transform; } stateMachine = new StateMachine(); stateMachine.AddState(new StateMachine.State() { Name = "Entered", OnEnter = () => { if (queueManager.Count() > 1) { target = queueManager.Next(); setDestination(target.transform); targetTransform = target.transform; agent.stoppingDistance = 5; } else { setDestination(window); targetTransform = window; agent.stoppingDistance = 3; } }, OnStay = () => { setDestination(targetTransform); }, OnExit = () => { } }); stateMachine.AddState(new StateMachine.State() { Name = "Service", OnEnter = () => { agent.isStopped = true; }, OnStay = () => { }, OnExit = () => { } }); stateMachine.AddState(new StateMachine.State() { Name = "Exit", OnEnter = () => { agent.isStopped = false; Debug.Log("Setting to exit"); setDestination(exit); agent.stoppingDistance = 3; queueManager.PopFirst(); refreshTargets?.Invoke(); }, OnStay = () => { setDestination(exit); agent.stoppingDistance = 3; }, OnExit = () => { } }); stateMachine.TransitionTo("Entered"); }