Ejemplo n.º 1
0
    void FixedUpdate()
    {
        if (target == null)
        {
            target = GameObject.FindGameObjectWithTag("Player").transform;
            if (target == null)
            {
                return;
            }
        }

        var   myAngle       = RotationHelper.GetAngleFromQuaternion(transform.rotation);
        var   angleToTarget = RotationHelper.GetAngleFromToTarget(transform.position, target.position);
        var   diff          = RotationHelper.GetDifferenceBetweenAngles(myAngle, angleToTarget);
        float nextAngle     = transform.rotation.eulerAngles.z;

        if (diff > 0)
        {
            var mod = turnSpeed * Time.fixedDeltaTime;
            if (mod > diff)
            {
                mod = diff;
            }
            nextAngle += mod;
        }
        else if (diff < 0)
        {
            var mod = turnSpeed * Time.fixedDeltaTime;
            if (mod < diff)
            {
                mod = diff;
            }
            nextAngle -= mod;
        }

        myRigidBody.MoveRotation(nextAngle);

        moveScript.Move(Time.fixedDeltaTime);
    }