Jump to content
UnitySpain

Aceptamos donaciones vía Paypal.

UnitySpain.com es un servicio gratuito, pero mantener la Comunidad conlleva una serie de gastos.

Fondo Anual Unityspain: Donados 0€ de 150,00€

  • Servidor: Dominio.com y Hosting Web
  • Mantenimiento de los Foros
  • Contenido y Servicios Extras
  • Mantenimiento para Redes Sociales

xcqoax

Fosiles
  • Content Count

    30
  • Joined

  • Last visited

Community Reputation

1 Neutral

About xcqoax

  • Rank
    Usuario

Recent Profile Visitors

433 profile views
  1. por fin... no se si sea la mejor solución o la mas practica pero lo consegui. public float smooth = 0.1f; private Vector3 newPosition; void Awake () { newPosition = transform.position; } void Update () { cambioposicion(); } void cambioposicion() { Vector3 posicionA = new Vector3 (113, 5, 0); Vector3 posicionB = new Vector3 (113, -2, 0); if (this.transform.position.y > 4) newPosition = posicionB; if (this.transform.position.y < -1) newPosition = posicionA; transform.position = Vector3.Lerp (transform.position, newPosition, Time.deltaTime *smooth); } } y para que comenzara a funcionar el objeto lo coloque en el V3(113,4.1,0) para que tomara bajara hasta el destino que seria posicionB y cuando transform.position.y sea menor que -1, tendria que subir hasta la posiciónA.
  2. no pude dormir tratando de buscar una posible solución q incluso use un vector3 lerp. de este modo tiempo = Mathf.PingPong (Time.deltaTime*velocidad, distancia)+altura; transform.position = Vector3.Lerp (inicio.position, destino.position, tiempo); tratare de dejarlo unos minutos ya hasta me duele la cabeza... incluso busque ejemplos y tutorial des Mathf.PingPong pero sin mucha ayuda,,,
  3. la api lo unico q tiene es esto: PingPongs el valor t, de manera que nunca es mayor que la longitud y nunca menor que 0. El valor devuelto se moverá hacia atrás y adelante entre 0 y longitud. transform.position = new Vector3(Mathf.PingPong(Time.time, 3), transform.position.y, transform.position.z);siendo en este caso mi distancia 6. por cierto hice publc velocidad pero en el inspector lo tengo como 1. link api. http://docs.unity3d.com/ScriptReference/Mathf.PingPong.html
  4. checando en internet lei que dentro de Unity esta Mathf.PingPong, el cual serviria para lo que requiero ya que moveria la plataforma del punto A al punto B y retornaria de nuevo al punto A. ya realice el script pero no funciona. si alguien de ustedes me pudiese orientar de mi error se lo agradecere public float distancia = 6f; public float velocidad; float Posy; void update () { Posy = Mathf.PingPong (Time.time * velocidad, distancia); transform.position = new Vector3 (transform.position.x,Posy, transform.position.z); } }
  5. Muchas gracias por decirme que se ejecutan en paralelo, la vdd no lo sabia. Por eso estoy acá porq quiero aprender y hay cosas q se me complican y me acerco a Uds para q orienten y me hagan ver en donde esta mi error. Muchas gracias
  6. he leido un poco y con ayuda de otro amigo que me comento de las corutinas, logre hacer otro script. en esta ocasion la plataforma ya sube y baja pero a una velocidad descontrolada. agradecere si alguien me pudiera hacer alguna observación de porque es tan rapido el movimiento de la plataforma. using UnityEngine; using System.Collections; public class islamovil : MonoBehaviour { public Transform inicio; public Transform destino; public float Velocity = 1f; float tiempo; float distance; float distanceVel; float movement; private void Start () { tiempo = Time.time; distance = Vector3.Distance(inicio.position, destino.position); StartCoroutine(goUp()); } private IEnumerator goUp() { distanceVel = (Time.time - tiempo) * Velocity; movement = distanceVel / distance; transform.position = Vector3.Lerp (inicio.position, destino.position, movement); yield return null; StartCoroutine(goDown()); } private IEnumerator goDown() { distanceVel = (Time.time - tiempo) * Velocity; movement = distanceVel / distance; transform.position = Vector3.Lerp (destino.position, inicio.position, movement); yield return null; StartCoroutine (goUp()); } }
  7. si es verdad, es que al momento de tratar de analizar un poco mas me puse a colocarle lineas y una de ellas fue la tamañovecbaj = Vector3.Distance (destino.position, inicio.position);// calcula el tamañaño del vector para hacerla bajar. para tratar de hacer que baje pero si, tienes la razon. solo que no lo quite porq ya me tenia un poco mareado esto. gracias por tu observación.
  8. use parte de la referencia de vector3, me dare una vuelta por tu canal... agradeceria si pudieses decirme un poco mas de los errores que tengo ya que de ellos aprendere. y muchas gracias por tus comentarios.
  9. he estado intentando hacer un script para plataforma que suba y baje continuamente. logro hacer que la plataforma se mueva pero no continua haciendo los movimientos. he estado algunos dias buscando referencia de ello por mas no logro encontrar el detalle. si alguien puede ayudar con alguna orientación (no hacer el script) se lo agradecre. using UnityEngine; using System.Collections; public class pruebamovil : MonoBehaviour { public Transform destino; public Transform inicio; public float velocidad=1f; float tiempo; float tamañovec; float tamañovecbaj; float movimiento; void Start () { tiempo = Time.time; tamañovec = Vector3.Distance(inicio.position, destino.position); // calcula el tamaño del vector para subir plataforma. tamañovecbaj = Vector3.Distance (destino.position, inicio.position);// calcula el tamañaño del vector para hacerla bajar. } void Update () { float distanciavel = (Time.time - tiempo) * velocidad; movimiento = distanciavel / tamañovec; subir (); } public void subir () { transform.position = Vector3.Lerp ( inicio.position, destino.position,movimiento); bajar (); } public void bajar () { transform.position = Vector3.Lerp ( destino.position, inicio.position,movimiento); subir (); } }
  10. muchas gracias a ambos (zorranco y arthur), ya tengo algo que leer y practicar este fin de semana. si puedo incluirlo en el proyecto de la escuela lo hare, de lo contrario podria buscar alguna otra alternativa.
  11. eso es mas o menos lo que necesitaba saber ya que me diste un punto de donde comenzar, "emparentar objetos", ya se que es un script. leere un poco y al momento de poder hacer algo lo compartire...
  12. tengo una duda sobre como agarrar un objeto para que el personaje lo agarre y no suelte y al dar click suelte dicho objeto. Por ejemplo, que mi personaje parado enfrente de un cubo al presionar la tecla "f" este se eleve y se mueva de acuerdo al movimiento de la cámara y cuando vuelva a presionar la tecla "f" lo suelte y caiga. Por medio de que función o comando del APi de unity se podria hacer, para que lea el API de unity. De antemano gracias por su apoyo
  13. para eso estoy aca para aprender, en lugar de estar con las ofensas bien pudiese tener la amabilidad de ayudar porque al final en algun punto necesitaras ayuda de alguien y lo que menos esperaras es que se burlen de ti. muchas gracias por tu comentario algo fuera de lugar pero gracias. saludos
  14. perdon, en el ejemplo de JS la etiqueta era cubo. y para JS agregaba el objeto cubo con la sentencia "var : transform;" pero en c#, de acuerdo a la sintaxis se maneja como "tipo variable-nombre de la variable"; por lo que yo coloque como Transform cubo;
  15. saludos, por cuestion de proyecto debo cambiar a c#, como ven tengo un script de JS, mi problema es que se me complica un poco el como podria cambiarlo a c#. agradeceria si alguieme apoyase con el codigo que he intentado hacer.. var distancia : float =5; var cubo: Transform; function Update() { var hit: RaycastHit; if(Physics.Raycast(transform.position, Vector3.forward,hit,distancia)) { if(hit.collider.gameObject.tag=="sofa"); { cubo.gameObject.SetActive(false); } } } -----------en c#------------------- using UnityEngine; using System.Collections; public class NewBehaviourScript : MonoBehaviour { void Update () { Transform cubo; // dado q en js se antepone la palabra "var", luego el nombre de la variable y de ultimo el tipo de variable, yo lo coloque de lamanera q se hace en c# el tipo de var y el nombre... RaycastHit hit; float distancia; if(Physics.Raycast(transform.position, Vector3.forward,out hit,distancia)) { if(hit.collider.gameObject.tag=="cubo"); // mi problema es hacer que si la variable hot colisiona con el objeto q tiene la etiqueta cubo... { cubo.gameObject.SetActive(false); } } } } agradecere sus comentarios, de este modo ire aprendiendo a que si solo pido el script.. saludos
×
×
  • Create New...