Controllare che avvenga una collisione in C# - Versione stampabile +- Creare Videogiochi - Game Developer (https://www.making-videogames.net/giochi) +-- Forum: Unity3D Italia (https://www.making-videogames.net/giochi/Forum-Unity3D-Italia) +--- Forum: Richieste di Aiuto per Unity 3D (https://www.making-videogames.net/giochi/Forum-Richieste-di-Aiuto-per-Unity-3D) +--- Discussione: Controllare che avvenga una collisione in C# (/thread-Controllare-che-avvenga-una-collisione-in-C) |
Controllare che avvenga una collisione in C# - Johnny 97 - 28-07-2012 Ehmmmmm, ok è da stamattina che cerco, che provo, faccio debug, ma ancora niente... Mi serve controllare che il giocatore collida con un oggetto, nela documentazione ufficiale ho trovato OnTriggerEnter e OnCollisionEnter ma non c'ho capito niente xD Non è che qualcuno può spiegarmi che funzione devo usare o che comando devo scrivere dentro l'if?? xD RE: Controllare che avvenga una collisione in C# - simone - 28-07-2012 devi aggiungere un overload del metodo OnCollisionEnter nel tuo script , in questo modo: Codice: void OncollisionEnter(Collision collision) se invece vuoi controllare la collisione solo con un oggetto specifico puoi farlo tramite un check del tag, o del nome: basta inserire sempre nel metodo OnCollisionEnter : per il nome Codice: if (collision.gameobject.name == "nome dell oggetto specifico") Codice: if (collision.gameobject.tag == "tag del tuo oggetto") poi dipende tutto da come hai impostato il progetto, per esempio io suddivido gli oggetti in tag e certi check (come questo) lo faccio tramite tag. spero di essere stato utile, ciao. RE: Controllare che avvenga una collisione in C# - Johnny 97 - 28-07-2012 grazie mille, avevo provato a fare con i tag, il problema è che l'inizio del mio script è sviluppato nella funzione Update, e quando scrivo "OnCollisionEnter();" per saltare alla funzione OnCollisionEnter mi dà errore... Come risolvo questo?? RE: Controllare che avvenga una collisione in C# - simone - 28-07-2012 non devi richiamarlo, e` un overload e` chiamato da solo nell`update interno dell`engine RE: Controllare che avvenga una collisione in C# - Johnny 97 - 29-07-2012 quindi il codice dovrà essere così? Codice: void Update { grazie mille!! RE: Controllare che avvenga una collisione in C# - Johnny 97 - 30-07-2012 up! O sono io cretino, o è il mio Unity ._. Non rileva alcuna collisione, nel debug non esce niente quando collido con l'oggetto... Ecco il codice: Codice: using UnityEngine; Oh, e mi servirebbe sapere anche come utilizzare WaitForSecond!! RE: Controllare che avvenga una collisione in C# - simone - 30-07-2012 HAi un collider o un rigidbody nel tuo gameobject ? RE: Controllare che avvenga una collisione in C# - Johnny 97 - 30-07-2012 nell'oggetto in cui metto lo script ho un collider, nell'altro no... l'altro oggetto è il First Person Controller che c'è di default su unity... RE: Controllare che avvenga una collisione in C# - simone - 30-07-2012 che quindi ha un character controller giusto ?? (che e` un collider) al posto di un Debug.Log prova a cambiare colore del materiale dopo la collisione, se non sbaglio la console stampa un solo certo numero di funzioni per ciclo, forse il problema e` quello RE: Controllare che avvenga una collisione in C# - Johnny 97 - 30-07-2012 prima di mettere il debug ho provato a distruggere l'oggetto con Destroy(gameObject) e non funzionava nemmeno, quindi il problema non è nel debug... RE: Controllare che avvenga una collisione in C# - simone - 30-07-2012 attenzione che il metodo detroy lo devi usare cosi` Codice: Destroy(transform.gameobject) RE: Controllare che avvenga una collisione in C# - Johnny 97 - 30-07-2012 continua a non funzionare!! |