Camera switching with a key press inside a trigger zone,

Hello. First of all im amateur in Unity and in English too, sry about that. I’ve been searching for infos about that switching cameras on youtube and here, but everyone is showing that you press the button anywhere on the map , and then camera switches. I dont want that. I would like to switch when im inside a trigger zone and pressing a button (one button instead of 2 would be nice too), or without trigger and just interacting an object like an NPC (whatever is easier). Switching camera while im miles away not helping me. I want to use camera switch for like 20 zones or npc. So duplicatable solution would be nice. I paste my terrible script which is mixed from like 3 places. No error, but not working at all. Please can you fix it for me.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraScript : MonoBehaviour
{

public GameObject Camera1;
public GameObject Camera2;
bool enter;
// Start is called before the first frame update
void Start()
{
    enter = false;
}

// Update is called once per frame
void Update()
{
   if (enter == false && Input.GetKeyDown(KeyCode.T))
   {
      CameraOne ();
   }

   if (enter == true && Input.GetKeyDown(KeyCode.Z))
   {
      CameraTwo ();
   }  
}

void CameraOne()
{
    Camera1.SetActive(true);
    Camera2.SetActive(false);
}
void CameraTwo()
{
    Camera1.SetActive(false);
    Camera2.SetActive(true);
}

void OnTriggerEnter (Collider collider)
 {
     if (collider.gameObject.CompareTag ("Zone1"))
                                                 
     {                                            
         enter = true;                             
     } 
 }
 void OnTriggerStay (Collider collider)
 {
     if (collider.gameObject.CompareTag ("Zone1"))
                                                 
     {                                            
         enter = true;                             
     } 
 }
 
 void OnTriggerExit (Collider collider)
 {
     if (collider.gameObject.CompareTag ("Zone1"))
     {                                              
         enter = false;                                        
     } 
 }

}

,

I would suggest creating a new script which you attach to each zone trigger. It should have a public variable for just the one camera that relates to that trigger zone. Then within OnTriggerStay, check for a player tag (your may need to add this tag to your player) and check if the key is pressed. If it’s pressed, disable all currently active cameras and then activate the camera referenced in the public variable.