private void Fire() { m_CanicaPlayer = Instantiate(m_CanicaPlayerPrefab, m_PuntoLanzaminento.position, m_PuntoLanzaminento.rotation) as GameObject; if (m_CanicaPlayer) { m_ScriptCP = m_CanicaPlayer.GetComponent <CanicaPlayer>(); } m_Throwed = true; m_ScriptCP.Fire(m_DireccionLanzamiento.forward * m_CurrentThrowForce);//ninguna de las dos funciona, el proble es que en cada update lo regresa a la posicion del jugador, cuando no este disparando }//una ve z que se ha disparado, debo deshabilitar los controles, la pelota sigue por su cuenta
public void Setup() { m_Throwed = false; m_CurrentThrowForce = m_MinForce; m_CanicaPlayer = Instantiate(m_CanicaPlayerPrefab, transform.position, transform.rotation) as GameObject; if (m_CanicaPlayer) { m_ScriptCP = m_CanicaPlayer.GetComponent <CanicaPlayer>(); m_ScriptCP.m_Player = transform; //m_CanicaPlayer.GetComponent<CanicaPlayer>().m_Player = transform; m_ScriptCP.m_PlayerThrow = GetComponent <PlayerThrow>(); } }
public void Setup() { m_Throwed = false; m_CurrentThrowForce = m_MinForce; m_CanicaPlayer = Instantiate(m_CanicaPlayerPrefab, transform.position, transform.rotation) as GameObject; m_Throwed = false; if (m_CanicaPlayer) { m_ScriptCP = m_CanicaPlayer.GetComponent <CanicaPlayer>(); m_ScriptCP.m_PlayerNumber = m_PlayerNumber; m_ScriptCP.m_Player = transform; //m_CanicaPlayer.GetComponent<CanicaPlayer>().m_Player = transform; m_ScriptCP.m_PlayerThrow = GetComponent <PlayerThrow>(); } //no debo instanciar canicas cuando quiera, debo instanciar algunas especificas, o ejor dicho tener todas instanciadas en un array de canicas, pero estas canicas siempre deben conservar ss propiedases, es decir de quien era y el color por jemeplo //las canicas de los jugadores no se destruyen, solo pasan a tener un nuevo propietrio, tener cuidado con esto, y como haer para que conservern o cambien los propietarios //el problema es ageragr y eliminar de un array, para eso tengo que tener una funcion, copiar pegar y eliminar }
public void OnTriggerExit(Collider other) //para devolver las desaceleraciones a su lugar { GameObject canica = other.gameObject; if (canica.layer == LayerMask.NameToLayer("Jugador")) { CanicaPlayer canicaPlayer = canica.GetComponent <CanicaPlayer>(); if (canicaPlayer.m_Fired) { canicaPlayer.m_Desaceleracion = 0f; } } if (canica.layer == LayerMask.NameToLayer("Objetivo")) { CanicaObjetivo canicaObjetivo = canica.GetComponent <CanicaObjetivo>(); canicaObjetivo.m_Desaceleracion = 0f; } }
public void OnTriggerEnter(Collider other) { GameObject canica = other.gameObject; if (canica.layer == LayerMask.NameToLayer("Jugador")) { CanicaPlayer canicaPlayer = canica.GetComponent <CanicaPlayer>(); if (canicaPlayer.m_Fired) { canicaPlayer.m_Desaceleracion = 1f; } } if (canica.layer == LayerMask.NameToLayer("Objetivo")) { CanicaObjetivo canicaObjetivo = canica.GetComponent <CanicaObjetivo>(); canicaObjetivo.m_Desaceleracion = 1f; } }
public class GroundControler : MonoBehaviour { //para agregar desaceleracion public void OnTriggerEnter(Collider other) //cambiar esto a Stay hace que sea muy pesado { GameObject canica = other.gameObject; if (canica.layer == LayerMask.NameToLayer("Jugador")) { CanicaPlayer canicaPlayer = canica.GetComponent <CanicaPlayer>(); if (canicaPlayer.m_Fired) { //Rigidbody canicaRigidbody = canica.GetComponent<Rigidbody>();//no funciona llamar a addforce del rigid body por que esto no esta en un update canicaPlayer.m_Desaceleracion = 1f; //los objetivos tambien deben tener un script para poider agregar alguna desaceleracion } } if (canica.layer == LayerMask.NameToLayer("Objetivo")) { CanicaObjetivo canicaObjetivo = canica.GetComponent <CanicaObjetivo>(); canicaObjetivo.m_Desaceleracion = 1f; } }