Exemple #1
0
        void Update()
        {
            if (Input.GetMouseButtonUp(1))
            {
                if (EventSystem.current.IsPointerOverGameObject())
                {
                    return;
                }

                RaycastHit hit = RaycastMousePosition();

                if (hit.transform.tag == "Movement Target")
                {
                    MovementTarget movementTarget = hit.transform.gameObject.GetComponent <MovementTarget>();
                    movementTarget.WaitForArrival();
                    if (movementTarget.hasAlternativeDestination)
                    {
                        playerMover.MoveTo(movementTarget.alternativeDestination.position);
                    }
                    else
                    {
                        playerMover.MoveTo(movementTarget);
                    }
                }

                if (hit.transform.tag == "Ground")
                {
                    playerMover.MoveTo(hit.point);
                }
            }
        }
Exemple #2
0
 void Awake()
 {
     movementTarget = GetComponent <MovementTarget>();
     movementTarget.TargetReached += () => GiveItem();
     ReceiveItem(itemDB.GetRandomItem());
     ReceiveItem(itemDB.GetRandomItem());
     ReceiveItem(itemDB.GetRandomItem());
 }
Exemple #3
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        MovementTarget movementTarget = (MovementTarget)target;

        if (movementTarget.hasAlternativeDestination)
        {
            movementTarget.alternativeDestination =
                (Transform)EditorGUILayout.ObjectField("Alternative Destination",
                                                       movementTarget.alternativeDestination,
                                                       typeof(Transform), true);
        }
    }
        //MovementTarget movementTarget;
        void Update()
        {
            if (Input.GetMouseButton(1) && !playerAI.canMove && !waitForRender)
            {
                if (EventSystem.current.IsPointerOverGameObject())
                {
                    return;
                }

                RaycastHit hit = RaycastGround();

                if (hit.transform.tag == "Ground")
                {
                    waitForRender = true;
                    pointer.gameObject.SetActive(false);
                    playerAI.destination = hit.point;
                    playerAI.SearchPath();
                    // Дальше, как только ИИ вычислит путь, сработает 'pathCallback', и запустится подписанный на него
                    // метод 'RenderPath', который отрисует путь.
                }

                if (hit.transform.tag == "Movement Target")
                {
                    waitForRender = true;
                    pointer.gameObject.SetActive(false);

                    MovementTarget movementTarget = hit.transform.GetComponent <MovementTarget>();
                    if (movementTarget.hasAlternativeDestination)
                    {
                        playerAI.destination = movementTarget.alternativeDestination.position;
                        playerAI.SearchPath();
                    }
                    else
                    {
                        playerAI.destination = hit.transform.position;
                        playerAI.SearchPath();
                    }

                    // Дальше, как только ИИ вычислит путь, сработает 'pathCallback', и запустится подписанный на него
                    // метод 'RenderPath', который отрисует путь.
                }
            }

            if (!Input.GetMouseButton(1))
            {
                pointer.gameObject.SetActive(true);
            }
        }
Exemple #5
0
    private void SetMoveTarget(MovementTarget target)
    {
        if (target == MovementTarget.Player)
        {
            moveTarget = closestPlayer.transform.position;
            // Debug.Log("Moving to " + closestPlayer.name, closestPlayer);
        }
        else if (target == MovementTarget.Patrol)
        {
            //Instantiate a box at the movetarget and check if its inside our box
            if (!patrolCheckFrame)
            {
                tempPos = RandomNavSphere(transform.position, 20);

                currentCheckBox      = (GameObject)Instantiate(boxCheck, tempPos, Quaternion.identity);
                currentCheckBox.name = "PatrolCheck";
                patrolCheckFrame     = true;
            }
            else
            {
                if (patrolArea.GetIsInBox())
                {
                    moveTarget = tempPos;
                }
                else
                {
                    moveTarget = transform.position;
                }
                patrolArea.SetIsInBox(false);
                if (currentCheckBox)
                {
                    Destroy(currentCheckBox);
                }
                patrolCheckFrame = false;
            }
        }
        GetComponent <g_AIRotateToTarget>().SetTargetTransform(moveTarget);
    }
 void Awake()
 {
     movementTarget = GetComponent <MovementTarget>();
     movementTarget.TargetReached += ActivateShopMode;
 }