Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
General (Antiguo) / Problema de matemáticas / lógica
Julio 28, 2017, 07:50:59 AMGeneral (Antiguo) / Problema de matemáticas / lógica
Julio 27, 2017, 07:23:22 PM
Hola,
No sé ni por dónde empezar a programar esto, pero aquí va el planteamiento:
Tengo dos variables floats, las cuales vamos a llamar A y B. La variable A, va de 0 a 1; la variable B va de -180 a 180. Mediante unos controles, puedo hacer variar la primera variable A entre estos dos valores.
La duda es cómo hacer lo que voy a explicar a continuación: cuando A sea 0, B será -180; cuando A sea 1, B será 180. Así pues, ¿Cuál será el valor de B si por ejemplo A es igual a 0.15? ¿Qué operación matemática o función de las que tiene Mathf me podrían servir para hacer esto?
Gracias de antemano y un saludo.
General (Antiguo) / Ejecutar función dos segundos más tarde del último clic
Julio 13, 2017, 08:43:06 PMCita de: kaito date=1499963322Podrias crear subrutinas o subprocesos utilizando corrutinas con un bucle infinito, while(true), iniciadas desde Start():
using UnityEngine;
using System.Collections;
public class FuncionesConPausa : MonoBehaviour {
public int pulsacionesA;
public int pulsacionesB;
public int pulsacionesC;
// Use this for initialization
void Start () {
//Funciones con pausa utilizando corrutinas
StartCoroutine(this.PulsarA());
StartCoroutine(this.PulsarB());
StartCoroutine(this.PulsarC());
}
IEnumerator PulsarA()
{
while (true)
{
yield return null;
if (Input.GetKey(KeyCode.A))
{
//Lo que pasaria al pulsar A
this.pulsacionesA++;
yield return new WaitForSeconds(2f);
}
}
}
IEnumerator PulsarB()
{
while (true)
{
yield return null;
if (Input.GetKey(KeyCode.)
{
//Lo que pasaria al pulsar B
this.pulsacionesB++;
yield return new WaitForSeconds(2f);
}
}
}
IEnumerator PulsarC()
{
while (true)
{
yield return null;
if (Input.GetKey(KeyCode.C))
{
//Lo que pasaria al pulsar C
this.pulsacionesC++;
yield return new WaitForSeconds(2f);
}
}
}
}
Tronco, eres un FENÓMENO!
General (Antiguo) / Ejecutar función dos segundos más tarde del último clic
Julio 13, 2017, 06:01:51 PMGeneral (Antiguo) / Ejecutar función dos segundos más tarde del último clic
Julio 13, 2017, 08:29:52 AM
Wow! Eso está muy bien lightbug... Pero yo me refería después del último clic, y según el que me has pasado se ejecuta dos segundos más tarde después del primer clic y, los clics que se pulsen después durante esos dos segundos los ignora.
Yo buscaba que hiciese esto pero al revés, que ignorara todos los clics hasta el último el cual sería el que iniciaría la corutina. Por eso, por ejemplo, si pulsara una segunda vez un segundo y medio después del primer clic, volvería a esperar otra vez dos segundos sin aplicar la función del primer clic, porque habría pulsado otra vez dentro del margen de tiempo de la corutina.
¿Existe alguna forma de reiniciar la corutina mientras cuenta o algo por el estilo? A si por ejemplo, supongo que se podría lograr que cada vez que se pulsa empieza de nuevo la corutina y solo se ejecutaría la función cuando terminase el tiempo.
General (Antiguo) / Ejecutar función dos segundos más tarde del último clic
Julio 12, 2017, 05:32:31 PM
Hola comunidad,
Estaba haciendo un proyecto personal y necesitaba hacer que en pulsar una tecla una o barias veces seguidas, se ejecuta una única vez y dos segundos más tarde que el último clic una determinada función. He hecho una prueba, que es la siguiente:
using UnityEngine;
using System.Collections;
public class prueba : MonoBehaviour {
private bool _limite = false;
void Update ()
{
if(Input.GetKeyDown(KeyCode.Space))
{
_limite = true;
StartCoroutine (Espera ());
}
}
IEnumerator Espera()
{
yield return new WaitForSeconds (2);
if(_limite == true)
{
_limite = false;
Debug.Log ("Funciona!");
}
}
}
Como podéis ver, en un principio funciona correctamente, es decir, si pulso un vez o más solo se ejecuta una sola vez el mensaje. Pero el problema es que con este código si pulso todo el rato durante más de dos segundos ya no funciona como yo quería, envía mensajes a la consola por cada uno de los clics.
Aun soy novato en programación, así que supongo que aparte de hacerlo mal me he complicado un poco la vida. Así que, ¿alguien tiene una idea de cómo lograr esto?.
Muchas gracias de antemano.
General (Antiguo) / Optimizar un código de Trigger y detectar Input
Abril 24, 2017, 12:20:39 PMCita de: pioj date=1493022917Lógica Booleana:
Cuando 2 condiciones se deben cumplir a la vez, es un AND. ( &&)
Cuando cualquiera de las 2 condiciones pueden complirse , es un OR. ( ||)
Cuando ninguna de las 2 condiciones deben cumplirse, es un NOT. ( != )
@El preguntón Por favor, cambia el título de tu tema, por otro título que quede mucho más concreto y claro para la web. "Pregunta Rápida" no es un buen título para buscar respuestas similares en un foro.
Leete las Normas de la Comunidad, o revisa las guías del foro Primeros Pasos.
Tienes razón pioj, pero no sé cómo se cambia el título del tema. Si me lo podrías decir...
Sobre la duda, no consigo ver el error. Mi objetivo era que realizara una función en entrar en un trigger con un tag y que pulsara la barra de espacio. Pero no se me ejecuta. ¿Qué podría hacer para solucionar esto?
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Tag") && Input.GetKeyDown(KeyCode.Space))
{
// Función
}
}
General (Antiguo) / Optimizar un código de Trigger y detectar Input
Abril 24, 2017, 10:15:53 AMCita de: kalua66 date=1492953623
if (other.gameObject.CompareTag ("tagA") || other.gameObject.CompareTag ("tagB")){
Ok, gracias. Por curiosidad, ¿Cómo sería para añadir que cumpla dos condicionales a la vez?
General (Antiguo) / Optimizar un código de Trigger y detectar Input
Abril 23, 2017, 03:18:16 PM
void OnTriggerStay(Collider other)
{
if (other.gameObject.CompareTag ("tagA"))
{
_speedMove = 0;
}
if (other.gameObject.CompareTag ("tagB"))
{
_speedMove = 0;
}
}
Gracias de antemano.
General (Antiguo) / No sé qué he hecho mal
Diciembre 08, 2016, 02:01:17 PM
Gracias por lo que me habéis dicho kingtrase y lightbug. Pero sigo sin entender porque no me funciona. Estaba haciendo con objetos primitivos a modo de prueba antes de empezar con modelos bien hechos lo que muestro abajo en el gif. Quería que cuando disparara a un objeto este se destruyera al colisionar con un tag; es decir, que le cubo se destruya. Pero no sé porque no se destruye. Empiezo a pensar que el problema no se trata del script, sino que de otra cosa. Pero no sé el que. El tag se lo he puesto a la esfera verde del video y en el cubo el script que había preguntado.
General (Antiguo) / No sé qué he hecho mal
Diciembre 06, 2016, 11:47:54 AM
Estaba haciendo un juego en el cual se destruía un objeto al colisionar con un tag. Así es como me quedó:
function OnTriggerEnter (collider : Collision){
if(collider.tag == "tag")
{
Destroy(gameObject);
}
}
Pero no entiendo porque no funciona. Yo no sé mucho de programación, soy un iniciado, así que si alguien me pudiese ayudar se lo agradecería de antemano.
General (Antiguo) / TROPICAL PARADISE
Marzo 09, 2016, 09:03:01 PMGracias antes de nada
1) Assets/Pro Standard Assets/Image Based/SSAOEffect.cs(72,17): error CS0619: `UnityEngine.Component.camera' is obsolete: `Property camera has been deprecated. Use GetComponent<Camera>() instead. (UnityUpgradable)'
2) Assets/Pro Standard Assets/Image Based/SSAOEffect.cs(72,24): error CS1061: Type `UnityEngine.Component' does not contain a definition for `depthTextureMode' and no extension method `depthTextureMode' of type `UnityEngine.Component' could be found (are you missing a using directive or an assembly reference?)
3) Assets/Pro Standard Assets/Image Based/SSAOEffect.cs(103,30): error CS0619: `UnityEngine.Component.camera' is obsolete: `Property camera has been deprecated. Use GetComponent<Camera>() instead. (UnityUpgradable)'
4) Assets/Pro Standard Assets/Image Based/SSAOEffect.cs(103,37): error CS1061: Type `UnityEngine.Component' does not contain a definition for `fieldOfView' and no extension method `fieldOfView' of type `UnityEngine.Component' could be found (are you missing a using directive or an assembly reference?)
5) Assets/Pro Standard Assets/Image Based/SSAOEffect.cs(104,29): error CS0619: `UnityEngine.Component.camera' is obsolete: `Property camera has been deprecated. Use GetComponent<Camera>() instead. (UnityUpgradable)'
6) Assets/Pro Standard Assets/Image Based/SSAOEffect.cs(104,36): error CS1061: Type `UnityEngine.Component' does not contain a definition for `farClipPlane' and no extension method `farClipPlane' of type `UnityEngine.Component' could be found (are you missing a using directive or an assembly reference?)
7) Assets/Pro Standard Assets/Image Based/SSAOEffect.cs(106,31): error CS0619: `UnityEngine.Component.camera' is obsolete: `Property camera has been deprecated. Use GetComponent<Camera>() instead. (UnityUpgradable)'
Assets/Pro Standard Assets/Image Based/SSAOEffect.cs(106,38): error CS1061: Type `UnityEngine.Component' does not contain a definition for `aspect' and no extension method `aspect' of type `UnityEngine.Component' could be found (are you missing a using directive or an assembly reference?)
[/quote]
General (Antiguo) / Esto nunca me había pasado
Febrero 28, 2016, 01:40:14 PMPues tenías razón Braltor y hammer, era eso, gracias a los tres por querer ayudarme
General (Antiguo) / Esto nunca me había pasado
Febrero 28, 2016, 10:52:15 AMHe revisado las dos cosas que me habéis dicho, pero ese no debe de ser el problema, es más, he aplicado ese mismo material a otros objetos (que no son cuerpos de revolución obviamente) y ha funcionado correctamente. ¿Alguien sabe cómo podría solucionarlo?
General (Antiguo) / Esto nunca me había pasado
Febrero 27, 2016, 01:44:38 PM
Hola a todos, me he encontrado con un problema cuando he exportado desde Cinema 4D a Unity 3D. Lo he hecho con .fbx y con .obj, pero sigue sucediendo. El problema es que una vez tengo exportado el modelo a Unity, le sucede algo, se ve el interior (pero no es transparente). Creo que lo veréis más claro con un modelo de prueba que he puesto abajo (Gif) para que lo comparéis y lo veáis por vuestros propios ojos. Solo me sucede con los cuerpos de revolución, es decir, con los splines haciéndolos hijos del torno. Las preguntas son: 1. ¿Por qué sucede esto?
)