private void OnTriggerEnter(Collider other) { if (!done) { done = true; if (other.GetComponent <PlayerController>() != null) { cinta.Activar(); } transform.position -= new Vector3(0, 0.2f, 0); } }
// Update is called once per frame void Update() { if (!activado) { return; } float vel = velocity * Time.deltaTime; switch (estado) { case Estados.Down: if (cont >= distanciaDown) { transform.position = new Vector3(tf.position.x, initialpos.y - distanciaDown, tf.position.z); cont = 0; estado = Estados.Right; } else { cont += vel; transform.position += new Vector3(0, -vel, 0); } break; case Estados.Right: if (cont >= distanciaRight) { transform.position = new Vector3(Mathf.Round(tf.position.x), tf.position.y, Mathf.Round(tf.position.z)); cont = 0; estado = Estados.Up; } else { if (cont >= 2 && tf.position.x <= 132) { siguienteCinta.Activar(); } cont += vel; if (tf.position.x < 106 || tf.position.z <= -6) { transform.position += new Vector3(vel, 0, 0); } else { transform.position += new Vector3(0, 0, -vel); } } break; case Estados.Up: if (cont >= distanciaUp) { transform.position = new Vector3(tf.position.x, initialpos.y, tf.position.z); cont = 0; estado = Estados.Down; activado = false; } else { cont += vel; transform.position += new Vector3(0, vel, 0); } break; } }