public void GoToQueue() { aiCharacterControl.agent.speed = randomWalkSpeed; aiCharacterControl.agent.stoppingDistance = 0.3f; if (!cashBox.fullQueue && cashBox.ready) { aiCharacterControl.target = cashBox.freeTargetInQueue.transform; float remainingDistance = Vector3.Distance(transform.position, aiCharacterControl.target.transform.position); if (remainingDistance <= 8f) { cashBox.CalculateQueue(); } if (remainingDistance <= 0.5f) { inQueue = true; cashBox.AddBuyerToQueue(this); aiCharacterControl.target = null; } //очередь заняли пока шел } else { aiCharacterControl.agent.stoppingDistance = randomDistance; aiCharacterControl.target = null; aiCharacterControl.agent.ResetPath(); FindWorkingCashBox(); ResetTimer(); } }
public void ResetWorkPlace() { Debug.Log("reset workplace on " + gameObject.name); if (cashBoxObject) { cashBox.haveCashier = false; cashBox.ready = false; stayingAtCashBox = false; readyToSell = false; cashBox.ClearQueue(); cashBox.CalculateQueue(); cashBox = null; cashBoxObject = null; minimalDistanceCashBox = null; } gameController.CalcCashboxes(); }