예제 #1
0
파일: EnemyAI.cs 프로젝트: beelol/invoke
    /* Assigns target and agent. */
    void Start()
    {
        agent = GetComponent <SteerForPathComponent>();

        if (GameController.player != null)
        {
            if (GameController.player.transform)
            {
                target = GameController.player.transform;
            }
        }

        StartCoroutine(RunAI());
    }
예제 #2
0
        // Use this for initialization
        public override void Awake()
        {
            //just to optimize the transform component lookup
            m_Transform = transform;


            m_Controller = GetComponent <ICECreatureControl>();
            if (m_Controller != null)
            {
                m_Controller.Creature.Move.OnTargetMovePositionReached += OnTargetMovePositionReached;
                m_Controller.Creature.Move.OnMoveComplete       += OnMoveComplete;
                m_Controller.Creature.Move.OnUpdateMovePosition += OnMoveUpdatePosition;
            }

            m_SteerForPathComponent = GetComponent <SteerForPathComponent>();
        }
예제 #3
0
        public override bool HandleResult(PathResult result, SteerForPathComponent steerer)
        {
            if (result.status != PathingStatus.Complete || !(result.originalRequest.customData is PathAddition))
            {
                return(false);
            }

            var pathAdd = (PathAddition)result.originalRequest.customData;

            if (pathAdd.prepend)
            {
                result.path.Push(pathAdd.point.AsPositioned());
            }
            else
            {
                result.path.Append(pathAdd.point.AsPositioned());
            }

            return(true);
        }
 public override void OnEnter()
 {
     steerForPath = gameObject.Value.GetComponent <SteerForPathComponent>();
     unit         = gameObject.Value.GetComponent <UnitComponent> ();
     options      = gameObject.Value.GetComponent <PathOptionsComponent> ();
 }