22-09-2016, 10:19 AM
Ok .. aggiornamento.. devo usare il raycast per selezionare l'oggetto..
ma il problema nn si risolve.. la variabile è condivisa.. cioè io ho una variabile bool "attiva"
se clicco sul primo.. essa passa a false, se clicco sul secondo.. essa risulta già false
...
Allego il codice
using UnityEngine;
using System.Collections;
public class rilevaCollisione : MonoBehaviour {
public Material[] Materiali;
private bool attivo = true;
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 + " > " + attivo);
if (attivo) {
hit.collider.GetComponent<Renderer>().sharedMaterial = Materiali [0];
attivo = false;
} else {
hit.collider.GetComponent<Renderer>().sharedMaterial = Materiali [1];
attivo = true;
}
}
}
}
}
ma il problema nn si risolve.. la variabile è condivisa.. cioè io ho una variabile bool "attiva"
se clicco sul primo.. essa passa a false, se clicco sul secondo.. essa risulta già false
...
Allego il codice
using UnityEngine;
using System.Collections;
public class rilevaCollisione : MonoBehaviour {
public Material[] Materiali;
private bool attivo = true;
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 + " > " + attivo);
if (attivo) {
hit.collider.GetComponent<Renderer>().sharedMaterial = Materiali [0];
attivo = false;
} else {
hit.collider.GetComponent<Renderer>().sharedMaterial = Materiali [1];
attivo = true;
}
}
}
}
}