Jump to content

xcqoax

Fosiles
  • Content Count

    30
  • Joined

  • Last visited

Everything posted by xcqoax

  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
  16. saludos, ultimamente tengo algunos problemas con el script de raycast; es decir, al momento de detectar la colision no se ejecuta el codigo ( como ejemplo, al detecta la colision con un modeolo que contenga una determinada etiqueta debera activarse una luz. pero al ejecutarlo no sucede nada). el modelo lo importe de la pagina de tf3dm no se si alguien tiene el mismo problema. agradecere sus comentarios. el objeto tiene mesh collider. cuando uso primitivas en unity el corre perfectamente.
  17. var distancia : int =5; //distancia del raycast var cubo: Transform; //objeto en cuestion function Update() { var hit: RaycastHit; if(Physics.Raycast(transform.position, Vector3.forward,hit,distancia)) //es hit,distancia no hit.distancia { if(hit.collider.gameObject.tag=="cubo"); //si el raycast colisiona con el objeto con la etiqueta cubo { cubo.gameObject.SetActive(false); // el objeto cubo debe desactivarse. } } } con este codigo al acercarme al cubo se desactiva. de todos modos gracias a los que respondieron
  18. el script lo agregue al personaje, pero quiero que se desactive un objeto en particular en este caso el que tenga la etiqueta de "cubo" al momento de colisionar con el raycast del personaje.
  19. la cuetsion es que el objeto que colisiona con el raycast debe desastivarse. pero no logro que suceda.
  20. hola (si, nuevamente). ya habiendo solucionado el detalle de los triggers y las notas en este momento me encuentro atorado con el hecho de estar utilizando el Raycast. siendo este mi codigo: var distancia : int =5; //distancia del raycast var cubo: Transform; //objeto en cuestion function Update() { var hit: RaycastHit; if(Physics.Raycast(transform.position, Vector3.forward,hit.distancia)) { if(hit.collider.gameObject.tag=="cubo"); //si el raycast colisiona con el objeto con la etiqueta cubo { cubo.gameObject.SetActive(false); // el objeto cubo debe desactivarse. } } } dicho script ya lo agregue al personaje. mucho agradecere sus comentario sobre esta cuestion del raycast. gracias
  21. ya logre mostrar el texto en pantalla al momento de acercarme al objeto. var texto: Transform; //la posicion del texto en 3D function OnTriggerEnter (col:Collider) //si entra en el trigger guarda colision { if (col.gameObject.tag=="player") // si la colison fue con un game object con la etiqueta player { texto.gameObject.SetActive(true); // se actuivara el gameibject texto. } } function OnTriggerExit (col:Collider) // al salir de la colision se desctiva el gameobject texto { if (col.gameObject.tag=="player") { texto.gameObject.SetActive(false); } } no se si sea el mejor codigo pero al menos a mi me funciona. por cierto. el texto debe estar en la camara del jugador. si a alguien le sirve o lo puede mejorar se agradecere. y gracias iRobb
  22. algo asi te refieres: function OnTriggerEnter (col:Collider) { texto.GetComponent<Renderer>().enabled=true; } function OnTriggerExit (col:Collider) { texto.GetComponent<Renderer>().enabled=false; }
  23. si entra en el trigger, ya que el mismo objeto al tocarlo se destruye (claro que para esta modificación marque como comentario que el objeto se destruya). var texto: Guitext; function OnTriggerEnter (col:Collider) { texto..enabled=true; } function OnTriggerExit (col:Collider) { texto..enabled=false; }
  24. Hola saludos, tengo un problema. deseo que tocar un objeto (trigger) me muestre un texto en pantalla. cree el uitext y lo ancle a dicho objeto pero no consigo que cuando yo entre al trigger se muestre dicho objeto y cuando salga desaparezca. al objeto (trigger) le puse el script. agradecere mucho su ayuda. function OnTriggerEnter (col:Collider) { GetComponentInChildren(GUIText).enabled=true; } function OnTriggerExit (col:Collider) { GetComponentInChildren(GUIText).enabled=false; }
  25. Hola saludos, tengo un problema. deseo que tocar un objeto (trigger) me muestre un texto en pantalla. cree el uitext y lo ancle a dicho objeto pero no consigo que cuando yo entre al trigger se muestre dicho objeto y cuando salga desaparezca. al objeto (trigger) le puse el script. agradecere mucho su ayuda. function OnTriggerEnter (col:Collider) { GetComponentInChildren(GUIText).enabled=true; } function OnTriggerExit (col:Collider) { GetComponentInChildren(GUIText).enabled=false; }
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...