using System.Collections.Generic; using Unity.Cinemachine; using UnityEngine; using UnityEngine.InputSystem; public class SwitchPlayerNew : MonoBehaviour { [Header("Input Action References")] [SerializeField] private InputActionReference switcherAction; [SerializeField] private InputActionReference interactAction; [Space] [Header("Cinemachine Settings")] [SerializeField] private List<CinemachineCamera> virtualCameras; [Space] [Header("Layermask Settings")] [SerializeField] private LayerMask mask; private int currentCamIndex = 0; Camera cam; void Start() { cam = Camera.main; } void Update() { SwitchPlayers(); RayCast(); } private void SwitchPlayers() { if (switcherAction.action.WasPerformedThisFrame()) { // Lower priority on current cam virtualCameras[currentCamIndex].Priority = 10; // Move to next cam index currentCamIndex = (currentCamIndex + 1) % virtualCameras.Count; // Raise priority on new cam virtualCameras[currentCamIndex].Priority = 11; } } private void RayCast() { Vector3 mousePos = Input.mousePosition; mousePos.z = 100f; mousePos = cam.ScreenToWorldPoint(mousePos); if (interactAction.action.WasPerformedThisFrame()) { Ray ray = cam.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray,out hit, 100,mask)) { Debug.Log(hit.transform.name); } } } void OnEnable() { switcherAction.action.Enable(); interactAction.action.Enable(); } }