Jump to content

Search the Community

Showing results for tags 'tiempo'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Proyectos
    • Offtopic
    • Unity Feeds
    • Website
    • Youtube
  • Mesa de ayuda
    • Unity
    • Arte
    • Builds & Dispositivos
    • Otras Especialidades
  • Aportes de la Comunidad
    • Recursos
    • Eventos
  • Bolsa de trabajo & Colaboraciones
    • Ofertas y Demandas
  • Post Antiguos
    • General (Antiguo)

Blogs

There are no results to display.

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Especialidad

Found 7 results

  1. Hola, Quisiera encontrar la manera de hacer que el contador de tiempo siga contando aun cuando la app este cerrada, Ejemplo: Un juego tipo Mascota virtual, lo que se busca es que al cerrar el juego, el tiempo siga corriendo de forma real, si en 6 horas no abren el juego y alimentan a la mascota, esta muere de hambre. Espero haberme explicado correctamente.
  2. Hola a tod@s, Estoy estancado en un proyecto y necesito ayuda. En mi escenario, el personaje tiene que hacer un recorrido y, al final de éste, recoger un objeto. Al hacerlo, el personaje vuelve al punto de partida y debe hacer de nuevo el recorrido para volver a recoger el objeto. Hasta ahí no hay problema. El tema está en que una vez hecho esto, si el tiempo que tarda en hacer el recorrido por segunda vez es inferior al tiempo invertido la primera vez, se debe mostrar en consola un mensaje de felicitación y es ahí donde me he quedado bloqueado y no encuentro la forma de solucionarlo. El problema (creo) está en la función "OnTriggerEnter". Adjunto el código para ver si me podéis echar un cable: #pragma strict //Variables OBJETOS CON EFECTOS TEMPORALES var scriptPersonaje : UnityStandardAssets.Characters.ThirdPerson.ThirdPersonCharacter; var contador : float; var contador_switch : boolean; var reloj : float; var tiempoinvertido : float; var record : float; //Variables RAYCAST var hit : RaycastHit; //Variables MUERTE var onGround: boolean = true; // nos dice cuando el personaje está en caida var firstY : float; // Posición inicial del personaje var lastY : float; // La última posición del personaje en que tocaba suelo var hFall : float; var character: CharacterController; var salud : int = 20; function Start () { firstY = transform.position.y; } function Update () { //RAYCAST if (Physics.Raycast(transform.position, transform.forward, hit, 5)){ if (hit.collider.gameObject.tag=="interruptores"){ print ("Estoy tocando el interruptor. Pulsa 'E' para recogerlo"); if(Input.GetKeyDown("e")) { print ("He cogido el interruptor"); Destroy(hit.collider.gameObject); } } } reloj = reloj + Time.deltaTime; //ITEMS DE TIEMPO LIMITADO if (contador_switch){ // Esta variable controla el tiempo que los items de tamaño y velocidad están activos contador = contador + Time.deltaTime; if(contador>5){ contador = ; contador_switch = false; } } else { scriptPersonaje = GetComponent (UnityStandardAssets.Characters.ThirdPerson.ThirdPersonCharacter); scriptPersonaje.m_MoveSpeedMultiplier = 1; transform.localScale = new Vector3 (1f, 1f, 1f); } } // FUNCIONES DE COLISIONES function OnCollisionEnter(collision: Collision) { // COLISIONES CON ITEMS Y LÍMITES DEL ESCENARIO // Podría ser también: // function OnCollisionEnter (hit:Collision){ if (collision.gameObject.tag== "cubo") { // if (hit.gameObject.tag== "cubo") { print ("Estoy Chocando Con El Cubo"); // print ("Estoy Chocando Con El Cubo"); } // } if (collision.gameObject.tag== "limite"){ print ("No creo que deba ir por ahí"); } // COLISIONES PARA CONTROLAR CUANDO ESTAMOS EN EL SUELO if (collision.gameObject.tag=="suelo") { //Cada vez que tocamos el suelo grabamos nuestra última posición lastY = transform.position.y; hFall = firstY - lastY; if (hFall > 4){ print ("GAME OVER"); // Si caemos de una altura de más de 4 unidades, palmamos transform.position = new Vector3 (31.43, 2.248855, 140); // RESPAWN print ("YOU'VE BEEN RESPAWNED"); } } if (collision.gameObject.tag=="plataformas") { //Cada vez que tocamos el suelo grabamos nuestra última posición lastY = transform.position.y; hFall = firstY - lastY; if (hFall > 2){ // Si caemos de una altura de más de 2 unidades nuestra salud disminuirá 5 puntos salud -= 5; //NO FUNCIONA BIEN POR LAS FÍSICAS DE UNITY print (salud); } } } function OnTriggerEnter (collider:Collider) { // COLISIONES CON ITEMS NORMALES E ITEMS DE TIEMPO LIMITADO if (collider.gameObject.tag=="cubo-tamaño") { //Al recoger este item aumentamos nuestro tamaño 0,5 unidades //print ("Esto es un trigger"); contador_switch = true; transform.localScale += new Vector3(1.5F, 1.5, 1.5); Destroy(collider.gameObject); } if (collider.gameObject.tag=="cubo-velocidad") { //Al recoger este item multiplicamos la velocidad X3 contador_switch = true; scriptPersonaje = GetComponent (UnityStandardAssets.Characters.ThirdPerson.ThirdPersonCharacter); scriptPersonaje.m_MoveSpeedMultiplier = 3; Destroy(collider.gameObject); } if (collider.gameObject.tag=="Item") { print ("Estoy recogiendo mi Item"); //Destroy(collider.gameObject); //print ("You spent " + Time.time + " seconds to finish this level"); // La diferència d'un comptador a l'altre és mínima print ("Has tardado " + reloj + " segundos en hacer el recorrido"); print ("YOU'VE BEEN RESPAWNED"); tiempoinvertido = reloj; // Igualamos el valor del reloj al tiempoinvertido //print (tiempoinvertido); /* EL PROBLEMA ESTÁ POR AQUÍ (CREO). ENTIENDO QUE, SEGÚN LO QUE TENGO ESCRITO, LA VARIABLE "record" SIEMPRE SERÁ IGUAL A LA VARIABLE "tiempoinvertido" Y AL RELOJ. LA COSA ESTÁ EN QUE NO SÉ CÓMO HACERLO PARA DISTINGUIR ENTRE "record" Y "tiempoinvertido" Y QUE FUNCIONE COMO YO QUIERO */ record = reloj; if(record < tiempoinvertido){ print("NUEVO RECORD " + record); } reloj = ; transform.position = new Vector3 (31.43, 2.248855, 140); } } function OnCollisionExit (collisionInfo : Collision) { //COLISIONES DE CONTROL CUANDO DEJAMOS DE TOCAR EL SUELO if (collisionInfo.gameObject.tag=="suelo") { //Cuando saltamos no estamos en el suelo, por lo tanto OnGround = false // print ("Estoy en el suelo"); onGround = false; firstY = transform.position.y; } if (collisionInfo.gameObject.tag=="plataformas") { //Cuando saltamos no estamos en el suelo, por lo tanto OnGround = false onGround = false; firstY = transform.position.y; } } Saludos y muchas gracias de antemano
  3. Hola muy buenas a todos hoy les vengo a hacer una pregunta rapida como puedo llamar a una funcion dps de 2 segundos ej : function Update () { if(Input.GetKeyDown(KeyCode.R)){ ani1.enabled = true; ani2.enabled = true; recargando = 1; recarga(); } } function recarga(){ ani1.enabled = false; ani2.enabled = false; recargando = 0; } y la otra duda como saco esto : Assets/FPSSSSSSSSS/Scrips/Disparador.js(55,16): BCW0012: WARNING: 'UnityEngine.GameObject.active' is obsolete. GameObject.active is obsolete. Use GameObject.SetActive(), GameObject.activeSelf or GameObject.activeInHierarchy. var efect1 : GameObject; efect1.active = false;
  4. ¡Hola buenas a todos! Acabe de terminar de leer un Archivo Pdf de Scripting para Unity 3D. Despues de terminarlo me di la tarea de ir creando un juego poco, Pero hace poco despues de pasar una animacion de recargo a Unity hecha en Blender, No me gusto que en mi Codigo sumaba las balas al instante de pulsar la tecla "R" Asi que me puse a recordar algunas cosas y me acorde del Time.deltaTime del Time.time pero también recordé el Invoke, Y como ni el Time.deltaTime y el Time.time me servian para hacer lo que quería (O al menos yo no encontré la forma) Use el Invoke para lograr que al pusar la "R" reproduzca la animación y después de 2 segundo de suspender el código sume las balas. Mi pregunta es: ¿Esta es la mejor forma de hacerlo? Osea ¿Es la mas profesional? O hay otra mejor. Mi código: (Esta es solo una parte del codigo) var balas:int = 0; function Update () { reloadanim.animation.Play(); if(Input.GetButtonDown("recargar"){ Invoke("Sumar", 2); } } function Sumar{ balas += 7; } Si ustedes creen que hay una forma mejor de hacerlo, O me recomiendan otras o al menos conocen otras formas para asi no limitarme a siempre usar esta, Espero que la comenten. Gracias por leer =)
  5. Quiero hacer una puerta delizable para una nave sci-fi y quiero q la puerta se translade pero en un tiempo determinado marque el parrafo en rojo cuando ago click E se mueve pero de golpe llega a la ubicacion y no como hacer private var guiShow : boolean = false; var isOpen : boolean = false; var objVel:int = 10; var door : GameObject; var rayLength = 10; function Update() { var hit : RaycastHit; var fwd = transform.TransformDirection(Vector3.forward); if(Physics.Raycast(transform.position, fwd, hit, rayLength)) { if(hit.collider.gameObject.tag == "Door") { guiShow = true; if(Input.GetKeyDown("e") && isOpen == false) { door.transform.Translate(Vector3(0,20,0) * objVel * Time.deltaTime); isOpen = true; guiShow = false; } else if(Input.GetKeyDown("e") && isOpen == true) { door.animation.Play("Door2"); isOpen = false; guiShow = false; } } } else { guiShow = false; } } function OnGUI() { if(guiShow == true && isOpen == false) { GUI.Box(Rect(Screen.width / 2, Screen.height / 2, 100, 25), "E"); } if(guiShow == true && isOpen == true) { GUI.Box(Rect(Screen.width / 2, Screen.height / 2, 100, 25), "E"); } }
  6. Hola a todos, verán tengo un problema y es que quiero hacer un script en c# que consiste en que al hacer click con el botón del ratón básicamente se active un contador en el que la puntuación aumente por ejemplo 100 por segundo. Se que puede ser muy sencillo pero no me sale. Ej: Click + 100 + 100 ... Gracias, se que he puesto esto en ayuda unity script pero es que quiero la solución ya, debido a que llevo varios días pensándolo y no se me ocurre o no funciona.
  7. Hola a todos, verán tengo un problema y es que quiero hacer un script en c# que consiste en que al hacer click con el botón del ratón básicamente se active un contador en el que la puntuación aumente por ejemplo 100 por segundo. Se que puede ser muy sencillo pero no me sale. Ej: Click + 100 + 100 ... Gracias, se que he puesto esto en ayuda unity script pero es que quiero la solución ya, debido a que llevo varios días pensándolo y no se me ocurre o no funciona.
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...