Exemple #1
0
    void AttemptToReachTarget()
    {
        timeSinceMoveOrdered += Time.deltaTime;

        if (!moveOrder.hasStarted || timeSinceMoveOrdered > moveOrderInterval)
        {
            if (seeker.IsDone())
            {
                moveOrder.currentPosition = currentPosition;
                moveOrder.hasStarted      = true;
                seeker.StartPath(currentPosition, target.transform.position, moveOrder.SetNewPath);
                timeSinceMoveOrdered = 0f;
            }
        }
        if (moveOrder.hasStarted)
        {
            moveOrder.currentPosition = currentPosition;
            moveOrder.Update();
            currentPosition = moveOrder.currentPosition;
            if (moveOrder.isCompleted)
            {
                moveOrder.hasStarted = false;
            }
        }
    }
    public override void Update()
    {
        if (!attackOrder.target)
        {
            GetTarget();
        }

        if (attackOrder.target)
        {
            attackOrder.currentPosition = currentPosition;
            attackOrder.Update();
            currentPosition = attackOrder.currentPosition;
        }
        else
        {
            if (moveOrder.hasStarted == false)
            {
                moveOrder.hasStarted = true;
                seeker.StartPath(currentPosition, targetPosition, moveOrder.SetNewPath);
            }
            moveOrder.currentPosition = currentPosition;
            moveOrder.Update();
            currentPosition = moveOrder.currentPosition;
        }

        isCompleted = moveOrder.isCompleted;
    }