CustomLockCameraY.cs 858 B

12345678910111213141516171819202122232425262728
  1. using UnityEngine;
  2. namespace Cinemachine.Examples
  3. {
  4. /// <summary>
  5. /// An add-on module for Cinemachine Virtual Camera that locks the camera's Y co-ordinate
  6. /// </summary>
  7. [ExecuteAlways]
  8. [SaveDuringPlay]
  9. [AddComponentMenu("")] // Hide in menu
  10. public class CustomLockCameraY : CinemachineExtension
  11. {
  12. [Tooltip("Lock the camera's Y position to this value")]
  13. public float m_YPosition = 10;
  14. protected override void PostPipelineStageCallback(
  15. CinemachineVirtualCameraBase vcam,
  16. CinemachineCore.Stage stage, ref CameraState state, float deltaTime)
  17. {
  18. if (stage == CinemachineCore.Stage.Finalize)
  19. {
  20. var pos = state.RawPosition;
  21. pos.y = m_YPosition;
  22. state.RawPosition = pos;
  23. }
  24. }
  25. }
  26. }