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… ![]()