Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Cinemachine;
- public class CameraSwitch : MonoBehaviour
- {
- public enum CameraType
- {
- None =-1,
- Main,
- First,
- Third,
- Back
- }
- [Header ( "Cinemachine Virtual Cameras" )]
- public CinemachineVirtualCamera MainVirtualCamera;
- public CinemachineVirtualCamera FirstVirtualCamera;
- public CinemachineVirtualCamera ThirdVirtualCamera;
- public CinemachineVirtualCamera BackVirtualCamera;
- private CinemachineVirtualCamera[] virtualCameras;
- public CameraType CurrentCameraType { get; private set; }
- private void Start ( )
- {
- virtualCameras = new CinemachineVirtualCamera [ ] { MainVirtualCamera, FirstVirtualCamera, ThirdVirtualCamera, BackVirtualCamera };
- ChangeCamera ( CameraType.Main );
- }
- public void ChangeCamera ( CameraType cameraType )
- {
- for ( int i = 0; i < virtualCameras.Length; i++ )
- virtualCameras [ i ].gameObject.SetActive ( false );
- if ( cameraType != CameraType.None )
- virtualCameras [ ( int ) cameraType ].gameObject.SetActive ( true );
- CurrentCameraType = cameraType;
- }
- private void Update ( )
- {
- if ( Input.GetKeyDown ( "t" ) )
- if ( CurrentCameraType == CameraType.First )
- ChangeCamera ( CameraType.Main );
- else
- ChangeCamera ( CameraType.First );
- if ( Input.GetKeyDown ( "b" ) )
- ChangeCamera ( CameraType.Back );
- // Don't know how you wanted your third camera activated. But your logic would go here...
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment