• Pingback: ()

  • Alan Wang

    Is it possible to combine smoothdamp with transform.LookAt?

    the current transform.LookAt on the camera locks the camera position to the character, creating a “stiff” camera movement. 🙁

    • jtyma

      Hi! If you want to use SmoothDamp you must pay attention to rotation discontinuity. Rotation is in range from 0 to 360 degrees so if you exceed these limits you will see something strange in your camera’s behaviour 😉

      To deal with it you can use SmoothDampAngle function instead and smooth each angle separately. We prepared a simple scene to show you that this approach works fine: http://cloud.aliasinggames.com/data/public/f5ea0d

      You can also use quaternion’s Slerp function:

      void Update()
      var targetRotation = Quaternion.LookRotation(player.transform.position - transform.position);
      transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, speed * Time.deltaTime);

      but remember this is an invalid way to use lerps functions which was described here: http://devblog.aliasinggames.com/how-to-lerp-properly/ We think that the first way is the best.

      Best regards!