Hola muchachos, bueno basicamente necesito que me tiren algunos tips de como me puede comunicar con otros scripts, a lo que me refiero con esto, es a manejar variables de un script en particular de un GameObject por ejemplo, bueno yo no soy tan novato, reconosco que puedo instanciar un GameObject creando una variable que almacene mi GameObject, pero lo que me esta costando, es el poder comunicarme con determinado script de ese GameObject que yo tenga almacenado en una variable, y poder mani***rlo comodo, y sin gastar mucho requisito en esa comunicacion....
No me quedo muy claro, pero estube revisando y los GetComponent<>() gastan bastante requisito, o estoy equivocado?, porfavor aclarenme eso, no estoy seguro, el GameObjectFind tengo entendido que si ese gasta mucho ya que revisa todo lode la escena.
Bueno en fin, miren aca tengo un ejemplo, esto es lo que hago con lo que yo se hasta ahora....
public ParticleSystem particleSys;
private RaycastHit hitInfo;
private const float rayDistance = 0.3f;
private const float resetTime = 1.3f;
private void Update() {
NewRayCast(Vector3.forward);
NewRayCast(Vector3.back);
NewRayCast(Vector3.right);
NewRayCast(Vector3.left);
NewRayCast(Vector3.up);
NewRayCast(Vector3.down);
}
private void NewRayCast(Vector3 dir) {
if (Physics.Raycast(new Ray(transform.position, dir), out hitInfo, rayDistance)) {
OnCrush();
}
}
private void OnCrush() {
if (hitInfo.collider.name.Substring(, 7) == "Barrier" ||
hitInfo.collider.name.Substring(, 5) == "Inner")
{
// Ignore Raycast
} else {
if (transform.gameObject.GetComponent<MeshRenderer>().enabled == true)
_OnCrush();
}
}
private void _OnCrush() {
particleSys.transform.position = transform.position;
particleSys.Play();
transform.gameObject.GetComponent<Player_Movement>().noMove = true;
transform.gameObject.GetComponent<Player_Movement>().isRotate = false;
transform.gameObject.GetComponent<Rigidbody>().isKinematic = true;
transform.gameObject.GetComponent<MeshRenderer>().enabled = false;
StartCoroutine("_Reset");