Example #1
0
        // StateMachine.IState Implementation
        public void FixedTick()
        {
            var activeUnicorns = SpawnSystem.GetActiveUnicorns();

            if (activeUnicorns.Count == 0)
            {
                return;
            }

            int   closestIndex      = -1;
            float closestDistanceSq = float.PositiveInfinity;

            for (int i = 0; i < activeUnicorns.Count; i++)
            {
                var transform = activeUnicorns[i].transform;
                if (behaviour.transform == transform)
                {
                    break;
                }
                var vecToUnicorn = transform.position - behaviour.transform.localPosition;
                var distSq       = Vector3.Dot(vecToUnicorn, vecToUnicorn);
                if (distSq < closestDistanceSq)
                {
                    closestIndex      = i;
                    closestDistanceSq = distSq;
                }
            }

            if (closestIndex != -1)
            {
                behaviour.guardTarget = activeUnicorns[closestIndex].transform;
            }
        }
Example #2
0
 private void FindUnicornInWorld()
 {
     var activeUnicorns = SpawnSystem.GetActiveUnicorns();
     //activeUnicorns[0].GetComponent<UnicornStats>().colorType;
 }