private void ProcessFollowerChain(HashSet <GameObject> lemonings, Vector3 target) { HashSet <GameObject> leaders = new HashSet <GameObject>(); // Nearest lemon will follow cursor if (lemonings.Count > 0) { GameObject lemonObj = FindNearestLemoning(lemonings, target); LemoningController lemon = lemonObj.GetComponent <LemoningController>(); lemon.SetDestination(target); lemonings.Remove(lemonObj); leaders.Add(lemonObj); } while (lemonings.Count > 0) { // get next nearest lemon GameObject lemonObj = FindNearestLemoning(lemonings, target); // Find potential leader (one closest to this lemon) GameObject leaderObj = FindNearestLemoning(leaders, lemonObj.transform.position); // Set lemon to follow LemoningController lemon = lemonObj.GetComponent <LemoningController>(); lemon.SetFollow(leaderObj); lemonings.Remove(lemonObj); leaders.Add(lemonObj); } }
// Start is called before the first frame update void Start() { m_Controller = GetComponent <LemoningController>(); RandomizeTimer(); m_waitTimer = 0.0f; }