Example #1
0
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            playerCombatControler.TryAttackEnemy();
        }

        if (target == null)
        {
            return;
        }

        var vecForward = transform.forward;
        var vecToEnemy = target.transform.position - transform.position;

        theteText.text = (Mathf.Acos(Vector3.Dot(vecForward.normalized, vecToEnemy.normalized)) * Mathf.Rad2Deg).ToString();

        var vecRight = transform.right;

        string text = (Mathf.Acos(Vector3.Dot(vecRight.normalized, vecToEnemy.normalized))) <= halfPi ? "right " : "left ";

        text += (Mathf.Acos(Vector3.Dot(vecForward.normalized, vecToEnemy.normalized))) <= halfPi ? "forward" : "back";

        leftRightText.text = text;

        collidedText.text = (Radius + target.Radius) > Vector3.Distance(transform.position, target.transform.position) ? "collision" : "no collision";
    }
Example #2
0
    public void Update()
    {
        targetCombatController.TryAttackEnemy();

        float distance = Vector3.Distance(targetPosition, transform.position);

        if (SeePlayer())
        {
            SetNextTarget(player.transform.position);
        }

        if (PlayerInRange())
        {
            return;
        }

        if (distance < 0.1f)
        {
            SetNextTarget();

            return;
        }

        Vector3 moveVector = (targetPosition - transform.position).normalized * speed * Time.deltaTime;

        if (Vector3.Magnitude(moveVector) > distance)
        {
            transform.position = targetPosition;

            return;
        }

        transform.position += moveVector;
    }