[C#] Problem with RayCast check.

Hi! (Im spanish, sorry for my bad english) I have 2 scripts (PlayerInteractions.cs and Elevator.cs) The first script is attached to the player camera and the second script is attached to the “Elevator” (Buttons of the elevator are in other child).

I need to do: “The first script make a raycast from the camera, and the second script check the collision with the buttons”

Script 1 (PlayerInteractions.cs):

using UnityEngine;
using System.Collections;

public class PlayerInteractions : MonoBehaviour {
	//UI Interaction Variables
	public Texture InteractionImage;
	private bool ShowDescriptionText = false;

	//Raycast Variables
	static public bool InteractionRaycast;
	static public RaycastHit InteractionHit;


	void Update () {
		InteractionRaycast = Physics.Raycast (transform.position, transform.TransformDirection (Vector3.forward), out InteractionHit, 5);

		//RaycastTouchs
		if (InteractionRaycast) {

			if(InteractionHit.collider.gameObject.tag == ("Interactable")){
				ShowDescriptionText = true;
			}else ShowDescriptionText = false;

		}


	}





	void OnGUI(){
		if (ShowDescriptionText==true) {
			GUI.DrawTexture(new Rect(Screen.width/2.6f, Screen.height/1.6f, Screen.width/3.5f, Screen.height/6.7f), InteractionImage);
		}
	}
}

Script 2 (Elevator.cs):

using UnityEngine;
using System.Collections;

public class Elevator : MonoBehaviour {
void Update () {

				if (PlayerInteractions.InteractionRaycast == true) {

				if (PlayerInteractions.InteractionHit.collider.gameObject.name == "ButtonElevator1") {
								if (Input.GetKey ("f") && ElevatorRunning == false) {
										Debug.Log("Touched1");

								}
						}

						if (PlayerInteractions.InteractionHit.collider.gameObject.name == "ButtonElevator2") {
				     			 Debug.Log("Tetocao");
								if (Input.GetKey ("f") && ElevatorRunning == false) {
										Debug.Log("Touched2");
								}
						}
					
			}
}

If i put the code of “Script2” in the “Script1”, all work fine. But when i check de collision with other script, dont work…

Help me, please… :frowning:

You should try to encapsulate more. So put all of the code in script1, including the collision and the input.getkey, and when it’s colliding AND pressing f AND the raycast hits, use GameObject.Find(“Elevator”).SendMessage(“ButtonPressed”);
Then make a function in Elevator.cs called “ButtonPressed()” and make it do whatever you want to do when the button is pressed.