22-09-2016, 11:45 AM
(Questo messaggio è stato modificato l'ultima volta il: 22-09-2016, 11:47 AM da Almiotti79.)
Risolto, sbagliavo tutto io..
In pratica devo avere 2 script separati. Un script che intercetta le azioni e che si appoggia a una oggetto esterno (anche la cam) e poi lo script con la variabile e l'azione da compiere innescata da chi intercetta.
Allego i due codici :
SCRIPT SULLA CAM :
SCRIPT SUL PREFAB (E QUINDI LE SUE ISTANZE) :
Grazie a tutti. Alla prox.
In pratica devo avere 2 script separati. Un script che intercetta le azioni e che si appoggia a una oggetto esterno (anche la cam) e poi lo script con la variabile e l'azione da compiere innescata da chi intercetta.
Allego i due codici :
SCRIPT SULLA CAM :
Codice:
using UnityEngine;
using System.Collections;
public class rilevaCollisione : MonoBehaviour {
void Update(){
if (Input.GetMouseButtonUp (0)) {
RaycastHit hit;
Ray raggio = Camera.main.ScreenPointToRay (Input.mousePosition);
Debug.DrawRay (raggio.origin, raggio.direction * 10, Color.yellow);
if (Physics.Raycast (raggio,out hit)) {
Debug.Log (hit.collider.name);
hit.collider.GetComponent<attivatore>().attiva();
}
}
}
}
SCRIPT SUL PREFAB (E QUINDI LE SUE ISTANZE) :
Codice:
using UnityEngine;
using System.Collections;
public class attivatore : MonoBehaviour {
public Material[] Materiali;
private bool attivo = true;
public void attiva(){
if (attivo) {
this.gameObject.GetComponent<Renderer>().sharedMaterial = Materiali [0];
attivo = false;
} else {
this.gameObject.GetComponent<Renderer>().sharedMaterial = Materiali [1];
attivo = true;
}
}
}
Grazie a tutti. Alla prox.