.
I have it moving into position correctly, but I can not, for the life of me, get that camera to behave correctly. Any ideas?
//Move player behind door.
float moveSpeed = 2.0f;
Vector3 aPos = transform.position;
Vector3 bPos = door.transform.position + door.transform.forward * -1.5f;
float stepPos = (moveSpeed / (aPos - bPos).magnitude) * Time.fixedDeltaTime;
float tPos = 0f;
//Swing player view.
float viewSwingSpeed = 100f;
Vector3 aRot = transform.rotation.eulerAngles;
Vector3 bRot = Quaternion.LookRotation (door.transform.position).eulerAngles;
float stepRot = (viewSwingSpeed / (aRot - bRot).magnitude) * Time.fixedDeltaTime;
float tRot = 0f;
//Camera cam = transform.gameObject.GetComponent<UnityStandardAssets.Characters.FirstPerson.FirstPersonController> ().m_Camera;
//transform.gameObject.GetComponent<UnityStandardAssets.Characters.FirstPerson.FirstPersonController> ().m_MouseLook.LookRotation (door.transform, cam.transform);
while (tPos <= 1.0f || tRot <= 1.0f) {
tPos += stepPos;
tRot += stepRot;
transform.position = Vector3.Lerp (aPos,bPos,tPos);
transform.rotation = Quaternion.Euler(Vector3.Lerp (aRot, bRot, tRot));
yield return new WaitForFixedUpdate();
}
I ended up figuring it out, just make sure to put a boolean in MouseLook.cs to stop the player from moving it via axis.
I locked the lerp stepping to the movement so it would all happen at the same time.
while (tPos <= 1.0f) {
//increment position
Vector3 aPos = transform.position;
Vector3 bPos = LastDoor.transform.position + LastDoor.transform.forward * -1.5f;
float stepPos = (moveSpeed / (aPos - bPos).magnitude) * Time.fixedDeltaTime;
tPos += stepPos;
//Set the camera to the door.
transform.localRotation = Quaternion.Slerp (transform.rotation, LastDoor.transform.rotation, tPos);
Quaternion m_CameraTargetRot = Quaternion.Euler (transform.localRotation.x, 0f, 0f);
cam.transform.localRotation = Quaternion.Slerp (cam.transform.localRotation, m_CameraTargetRot , tPos);
transform.position = Vector3.Lerp (aPos,bPos,tPos);
yield return new WaitForFixedUpdate();
}