26-08-2016, 08:44 PM
Sì, attualmente lo script funziona solo se i due script sono nello stesso GameObject.
Per far interagire due script che sono in gameobject diversi puoi richiamare il gameobjet in due maniere:
La seconda ti consentirà di trovarlo cercandolo per nome.
Esempio(usando la prima funzione):
Esempio(usando la seconda funzione):
Per quanto riguarda la seconda domanda potresti modificare lo script "FirstPersonController" aggiungendo una variabile(che servirà per determinare se il player è in acqua), per poi modificare la funzione "PlayFootStepAudio()" andando ad aggiungere la variabile nell'if.
Esempio:
Questa nuova variabile, per come è impostato lo script, sarà attiva quando il player sarà in acqua.
Per attivare questa variabile potresti aggiungere un box collider, impostato come trigger, sotto l'acqua, attivando la variabile con la funzione "OnTriggerEnter" e disattivandola con la funzione "OnTriggerExit".
Per far interagire due script che sono in gameobject diversi puoi richiamare il gameobjet in due maniere:
- Utilizzando la funzione FindGameObjectWithTag()
- Utilizzando la funzione Find()
La seconda ti consentirà di trovarlo cercandolo per nome.
Esempio(usando la prima funzione):
Codice:
GameObject.FindGameObjectWithTag("TagOggetto").GetComponent<NomeScript> ().NomeVariabile
Codice:
GameObject.Find("NomeOggetto").GetComponent<NomeScript> ().NomeVariabile
Per quanto riguarda la seconda domanda potresti modificare lo script "FirstPersonController" aggiungendo una variabile(che servirà per determinare se il player è in acqua), per poi modificare la funzione "PlayFootStepAudio()" andando ad aggiungere la variabile nell'if.
Esempio:
Codice:
private void PlayFootStepAudio()
{
if (!m_CharacterController.isGrounded || NomeVariabile)
{
return;
}
/* altre funzioni*/
}
Questa nuova variabile, per come è impostato lo script, sarà attiva quando il player sarà in acqua.
Per attivare questa variabile potresti aggiungere un box collider, impostato come trigger, sotto l'acqua, attivando la variabile con la funzione "OnTriggerEnter" e disattivandola con la funzione "OnTriggerExit".