Sto tentando di eliminare l'oggetto su cui è stato fatto clic. Sto facendo un gioco 2D usando il nuovo Unity3D 4.3. Ecco il codice che sto utilizzandoRaycasting per trovare il mouseclick su Oggetto in unità 2d giochi
void Update() {
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray,out hit))
{
isHit = false;
Destroy(GameObject.Find(hit.collider.gameObject.name));
}
}
}
Il controllo non sta entrando nel ciclo interno se. (isHit
non viene impostato come falso).
L'oggetto ha un collisore? Ha un collisore e un corpo rigido? –
Sì, contiene un collisore e un corpo rigido –
Ho usato Physics2D e funziona !! Questo è il codice modificato Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); Vector2 orgin = new Vector2 (ray.origin.x, ray.origin.y); RaycastHit2D hit = Physics2D.Linecast (orgin, -Vector2.up, 1 << LayerMask.NameToLayer ("Supports")); Destroy (hit.collider.gameObject); Ma ora il quando anche quando clicco su altri luoghi l'oggetto viene eliminato .. Credo che il problema è con la direzione raycast essendo -Vector2.up .. che direzione devo cast a ?? –