c# – Unity Digital camera snaps again to digicam mouse take care of lerping to some extent and rotating usually. As soon as mouse look is re-enabled it overrides and snaps again

c# – Unity Digital camera snaps again to digicam mouse take care of lerping to some extent and rotating usually. As soon as mouse look is re-enabled it overrides and snaps again

[ad_1]

I’m making an attempt to get the digicam to rotate in the direction of a location and place. Which works in the meanwhile, however as soon as it’s performed and re permits the mouse look script or bool within the script the mouse look overrides the rotation and units it again to the unique rotation it had when the rotation began.

if (lockedOn)
    {
        // Get the route to the goal
        Vector3 route = goal.remodel.place - remodel.place;

        // Calculate the rotation to face the goal
        Quaternion rotationToTarget = Quaternion.LookRotation(route, Vector3.up);

        // Rotate in the direction of the goal over time
        remodel.rotation = Quaternion.RotateTowards(remodel.rotation, rotationToTarget, rotationSpeed * Time.deltaTime);

        if (currentFOV >= closeFOV)
        {
            curRotation = remodel.rotation;
            currentFOV -= fovSpeed * Time.deltaTime;
            digicam.fieldOfView = currentFOV;
        }
    }

    if (!lockedOn)
    {
        if (currentFOV <= startFOV)
        {
            currentFOV += fovSpeed * Time.deltaTime;
            digicam.fieldOfView = currentFOV;
            remodel.rotation = curRotation;

            if (digicam.fieldOfView >= startFOV)
            {
                goal = null;
                remodel.localRotation = curRotation;
                mouseLook.lockControls = false;
            }
        }
    }
    if (removeFromCharacter)
    {
        // Distance moved equals elapsed time occasions pace..
        float distCovered = (Time.time - startTime) * cameraMoveSpeed;

        // Fraction of journey accomplished equals present distance divided by complete distance.
        float fractionOfJourney = distCovered / journeyLength;

        // Set our place as a fraction of the gap between the markers.
        remodel.place = Vector3.Lerp(origCameraLocation.remodel.place, newCameraLocation.place, fractionOfJourney);
    }

and the mouse look script

 if(!lockControls)
    {
    // Get mouse enter
    float mouseX = Enter.GetAxis("Mouse X");
    float mouseY = Enter.GetAxis("Mouse Y");

    // Rotate the participant's physique based mostly on horizontal mouse motion
    playerBody.Rotate(Vector3.up * mouseX * sensitivity);

    // Calculate the brand new vertical rotation
    rotationX -= mouseY * sensitivity;
    rotationX = Mathf.Clamp(rotationX, -verticalLookLimit, verticalLookLimit);

    // Apply the rotations to the digicam and participant physique
    remodel.localRotation = Quaternion.Euler(rotationX, 0f, 0f);
    }

[ad_2]

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply