How to make 2 doors with 2 diffrent keys

I have a door which I can open with a key. But I wanna make 2 doors with 2 diffrent keys. Here are the Scripts.

This one is the Script on the door: `

//Booleans:
var IsOpen : boolean = false;

var smooth = 2.0;

var DoorOpenAngle = 90.0;
 
var CanOpen : boolean = false;
 
var NeedKey : boolean = true;

private var enter : boolean;



//Audios:
 
var Locked : AudioClip;
 
var Open : AudioClip;

var Close : AudioClip;
 
//Other:
 
 	
var KeyScript : GameObject;

private var openRot : Vector3;

private var defaultRot : Vector3;

 

 
function Update () {
 
 
if(Input.GetKeyUp(KeyCode.E) && !IsOpen && CanOpen && !NeedKey)
 
{
        Opening();
        IsOpen = true;
        audio.clip = Open;
       
        audio.PlayOneShot(Open);
}
 
else if(Input.GetKeyUp(KeyCode.E) && IsOpen && CanOpen && !NeedKey)
 
{
        Closing();
        IsOpen = false;
        audio.clip = Close;
       
        audio.PlayOneShot(Close);
}
 
else if(Input.GetKeyUp(KeyCode.E) && CanOpen && NeedKey)
 
{
        
        audio.clip = Locked;

        audio.Play();
        
       

}

 
if(KeyScript.GetComponent(Key).HaveKey == true)
{
        NeedKey = false;
}
 
}

function Start(){
defaultRot = transform.eulerAngles;
openRot = new Vector3 (defaultRot.x, defaultRot.y + DoorOpenAngle, defaultRot.z);
}
 
 
 
function Opening()
{
for (var i = 0; i < 35; i++ )
{
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, openRot, Time.deltaTime * smooth);
   
    yield WaitForSeconds(0.01);
        }
}
 
function Closing()
{
for (var i = 0; i < 35; i++)
{
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, defaultRot, Time.deltaTime * smooth);
   
    yield WaitForSeconds(0.01);
       

        }
}
 
function OnTriggerEnter (other : Collider)
{
        if(other.gameObject.tag == "Player")
        {
                CanOpen = true;
        }
}
 
function OnTriggerExit (other : Collider)
{
        if(other.gameObject.tag == "Player")
        {
                CanOpen = false;
        }
}

 

 
 
 
 
@script RequireComponent(AudioSource)`

This Script is on the MainCamera: ` var ShowText : boolean = false;

var Text : String = "You picked up a key";
 
var other : GameObject;
 
function Update () {
 
var hit : RaycastHit;
       
var ray : Ray = camera.ViewportPointToRay (Vector3(0.5,0.5,0));
       
var fwd = transform.TransformDirection (Vector3.forward);
 
Debug.DrawRay(transform.position, fwd * Length, Color.green);
       
        if(Physics.Raycast(ray, hit, Length))
 
        {      
               
                hitObject = hit.collider.gameObject;
               
                if(hitObject.gameObject.tag == "Key")
 
                        {
               
                                other.GetComponent(Crosshair).TextureChange();
               
                                if(Input.GetKeyUp(KeyCode.E))
                                {
                       
                                        GetKey();
                                        Destroy(hitObject);
                                       
                       
                                }
                               
                               
                        }
               
                        else if(hitObject.gameObject.tag == "Untagged")
               
                        {
                                other.GetComponent(Crosshair).BackToNormal();
                        }
 
                }
       
        else if(!Physics.Raycast(transform.position, transform.forward, hit, Length))
        {
                other.GetComponent(Crosshair).BackToNormal();
        }
       
       
 
}
 
function GetKey(){
 
        HaveKey = true;
 
        ShowText = true;
       
        yield WaitForSeconds(3);
       
        ShowText = false;
}
 
function OnGUI(){
 
if(ShowText)
{
        GUI.Label(Rect(Screen.width /2 -62.5, Screen.height /2 + 50, 200, 100), Text);
}
 
}`

And this Script is on the MainCamera too:

    var Length : float = 3;
     
    static var HaveKey : boolean = false;
    var ShowText : boolean = false;
     
    var Text : String = "You picked up a key";
     
    var other : GameObject;
     
    function Update () {
     
    var hit : RaycastHit;
           
    var ray : Ray = camera.ViewportPointToRay (Vector3(0.5,0.5,0));
           
    var fwd = transform.TransformDirection (Vector3.forward);
     
    Debug.DrawRay(transform.position, fwd * Length, Color.green);
           
            if(Physics.Raycast(ray, hit, Length))
     
            {      
                   
                    hitObject = hit.collider.gameObject;
                   
                    if(hitObject.gameObject.tag == "Key")
     
                            {
                   
                                    other.GetComponent(Crosshair).TextureChange();
                   
                                    if(Input.GetKeyUp(KeyCode.E))
                                    {
                           
                                            GetKey();
                                            Destroy(hitObject);
                                           
                           
                                    }
                                   
                                   
                            }
                   
                            else if(hitObject.gameObject.tag == "Untagged")
                   
                            {
                                    other.GetComponent(Crosshair).BackToNormal();
                            }
     
                    }
           
            else if(!Physics.Raycast(transform.position, transform.forward, hit, Length))
            {
                    other.GetComponent(Crosshair).BackToNormal();
            }
           
           
     
    }
     
    function GetKey(){
     
            HaveKey = true;
     
            ShowText = true;
           
            yield WaitForSeconds(3);
           
            ShowText = false;
    }
     
    function OnGUI(){
     
    if(ShowText)
    {
            GUI.Label(Rect(Screen.width /2 -62.5, Screen.height /2 + 50, 200, 100), Text);
    }
     
    }`

The last scipt is for Crosshair.
How can I make 2 diffrent keys for 2 diffrent doors now ?

Set a ID for a key and which door the key open.

You can even just check the gameObject itself. So store a reference to the gameObject of the key you want to use and then check if player.heldKey == requiredKey. That’s probably how I would handle this. If you need more granular or accounting control you could wind up the keys and doors in hashrefs and then specifically “key” them together with strings.