Пример #1
0
        public override void OnInspectorGUI()
        {
            DrawDefaultInspector();

            NavigationTargeter myScript = (NavigationTargeter)target;

            if (GUILayout.Button("Recompute Path To Target"))
            {
                myScript.RecomputeWaypoints();
            }
        }
Пример #2
0
        public override void UpdateLogic(CharacterLogicController controller)
        {
            NavigationTargeter targeter = controller.GetComponent <NavigationTargeter>();

            if (targeter == null)
            {
                return;
            }

            if (targeter.target != null)
            {
                return;
            }

            Transform target          = null;
            float     closestDistance = Mathf.Infinity;

            foreach (Collider2D collider in Physics2D.OverlapCircleAll(controller.transform.position, seekRange))
            {
                CharacterTeamAssigner assigner = collider.GetComponent <CharacterTeamAssigner>();
                if (assigner != null)
                {
                    if (assigner.team == teamToSeek)
                    {
                        float distance = Vector2.Distance(controller.transform.position, assigner.transform.position);
                        if (distance < closestDistance)
                        {
                            target          = assigner.transform;
                            closestDistance = distance;
                        }
                    }
                }
            }
            targeter.target = target;
            targeter.RecomputeWaypoints();
        }