When attaching my custom camera script camera shakes when player starts to move fast.
Here is my player script.
 using UnityEngine;
 using System.Collections;
 
 public class Player : MonoBehaviour
 {
 
     Rigidbody rb;
 
     Vector3 currMovement;
     public float jumpSpeed = 10;
     public float moveSpeed = 10;
     public float rotSpeed = 180;
 
     float distToGround;
 
     public float posSmoothTime = 0.5f;
     float currPos;
     float targetPos;
     float posVel;
 
     public float rotSmoothTime = 0.5f;
     float currRot;
     float targetRot;
     float rotVel;
 
     void Start()
     {
         rb = GetComponent<Rigidbody>();
         distToGround = GetComponent<Collider>().bounds.extents.y;
     }
 
     bool isGrounded() { return Physics.Raycast(transform.position, Vector3.down, distToGround + 0.1f); }
 
     void Update()
     {
         Move();
     }
 
     void Move()
     {
         // Rotation smoothing.
         targetRot = Input.GetAxisRaw("Horizontal") * rotSpeed * Time.smoothDeltaTime;
 
         if (targetRot > 360)
             targetRot -= 360;
         if (targetRot < 0)
             targetRot += 360;
         currRot = Mathf.SmoothDampAngle(currRot, targetRot, ref rotVel, rotSmoothTime * Time.smoothDeltaTime);
 
         transform.eulerAngles += new Vector3(0, currRot, 0);
 
         // Movement smoothing.
         targetPos = Input.GetAxisRaw("Vertical") * moveSpeed;
 
         currPos = Mathf.SmoothDamp(currPos, targetPos, ref posVel, posSmoothTime * Time.smoothDeltaTime);
         currMovement = new Vector3(0, 0, currPos);
         currMovement = transform.rotation * currMovement;
 
         if (isGrounded())
         {
             if (Input.GetButtonDown("Jump"))
                 rb.velocity += Vector3.up * jumpSpeed;
         }
 
         rb.position += currMovement * Time.smoothDeltaTime;
     }
 
 }
I have a Rigidbody attached to my player. I think the problem is with my camera script. Here is my camera script.
 using UnityEngine;
 using System.Collections;
 
 public class CameraMovement : MonoBehaviour
 {
 
     public Transform player;
     Quaternion targetLook;
     Vector3 targetMove;
     public float smoothLook = 0.5f;
     public float smoothMove = 0.5f;
     public float distFromPlayer = 5, heightFromPlayer = 3;
 
     void LateUpdate()
     {
         CameraMove();
     }
 
     void CameraMove()
     {
         targetMove = player.position + (player.rotation * new Vector3(0, heightFromPlayer, -distFromPlayer));
         transform.position = Vector3.Slerp(transform.position, targetMove, smoothMove);
 
         targetLook = Quaternion.LookRotation(player.position - transform.position);
         transform.rotation = Quaternion.Slerp(transform.rotation, targetLook, smoothLook);
     }
 
 }
The player is not an parent of my camera. When I parent the camera to my player the shake stops. But I want a custom smooth camera movement with my custom scirpt, so I can't make the player a parent of the camera.
Answer by e4lime · Jun 12, 2016 at 06:09 PM
It might be because your camera follows a rigidbody. Do you get the same shaking effect if your camera follows a GameObject that doesn't have a rigidbody? If not try this:
- Change the rigidbodys interpolation to internal or external 
- In CameraMovement.cs: Cache the players rigidbody and use rigidbody.position instead of player.position in CameraMove() 
Edit: Try this:
- Add a kinematic Rigidbody to the camera 
- Cache the rigidbody 
- Use rigidbody.position and rigidbody.rotation instead of transform.position and transform.rotation 
- Call CameraMove() from FixedUpdate() instead of LateUpdate() 
- Play around with interpolation on the camera and the player if necessary 
And move the player movement code to FixedUpdate() (while keeping the input read in Update())
I did what you said @$$anonymous$$lockrent, please can you answer this question. I modified the code a little bit in there and posted a question. Please can you answer this ?
@$$anonymous$$lockrent if you don't have gamedev stackexchange acc PLS create one and answer my question. And let me know that you were $$anonymous$$lockrent ;). I started using gamedev.stackexchange, because this question was pretty complicated and in unity answers help room I don't think anyone can answer my question right, so PLS go to "Here is my question PLEAASSE answer it." link and answer my question!
@HaykAv I answered in your link with some code. It should work now I hope :)
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
               
 
			 
                