Jump to content
UnitySpain

Search the Community

Showing results for tags 'input'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

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

Blogs

  • byGui
  • El Blog de Pioj

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 18 results

  1. Hola, soy nuevo en esto de Unity y con poca experiencia en programación. Quiero empezar con algo que me pareció sencillo pero no se como afrontar la base del proyecto. Sencillamente quiero crear dos botones, uno para mano derecha y otro para izquierda, estos botones deben ser pulsados repitiendo combinaciones, basicamente son ejercicios de percusión que el jugador debe repetir. La cuestión es que no se como darle esa función a los botones virtuales, que no teclas, porque lo que pretendo es que mi aplicación funcione en mi tablet y como son varios ejercicios quería darle diferentes niveles, si erras en cualquier pulsación que detecte el error, etc. Agradecería que alguien pudiese aportarme alguna idea... Un saludo a todos, felices fiestas y prospero año.
  2. he leido por hay que los teclados solo cogen 3 o 4 teclas a la vez, maximo... es esto cierto? como puede ser posible? yo recuerdo haber jugado a juegos "multiplayer" jugando los dos en el teclado.... la cuestion es que queria meter "splitScreen" (multiplayer local) al juego de coches... pero si los teclados tienen limite de teclas pulsadas a la vez pues me parece que va a ser un problema.... (con el teclado... con gamepad no hay problem)
  3. Hola, estaba intentando que se pudiera cambiar de música de fondo con las flechas horizontales. En el inspector he podido comprobar que sí se cambian, pero no sé por qué no se escucha. ¿Qué he hecho mal en este código?: using UnityEngine; using System.Collections; public class musicArray : MonoBehaviour { public AudioClip[] _audiosClip = new AudioClip[4]; private AudioSource _audioSource; private int _caseContainer = 0; void Start() { _audioSource = GetComponent<AudioSource> (); } void Update() { if(Input.GetKeyDown(KeyCode.RightArrow)) { _caseContainer++; } if(Input.GetKeyDown(KeyCode.LeftArrow)) { _caseContainer--; } if(_caseContainer > 3) { _caseContainer = 0; } if(_caseContainer < 0) { _caseContainer = 3; } _audioSource.clip = _audiosClip [_caseContainer]; _audioSource.Play (); } } Gracias comunidad de antemano .
  4. 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.
  5. Hola gente, estaba haciendo unas pruebas para mover un personaje usando el código siguiente: using UnityEngine; using System.Collections; public class mover : MonoBehaviour { private Rigidbody _rb; void Start () { _rb = GetComponent<Rigidbody> (); } void Update () { if (Input.GetKey(KeyCode.D)) { _rb.velocity = new Vector3 (4, 0, 0); } if (Input.GetKey (KeyCode.A)) { _rb.velocity = new Vector3 (-4, 0, 0); } } } No es que no funcione, es que sea cual sea su yaw siempre se desplaza en el eje X del mundo virtual. A lo que me refiero es cómo se podría hacer para que se desplazara horizontalmente según su orientación, no el del mundo virtual. Muchas gracias por la ayuda.
  6. Hola comunidad, acudo a ustedes porque tengo un pequeño problema , ante todo soy nuevo en esta comunidad y soy principiante en el uso de unity y la verdad me interesa mucho aprender a diseñar y crear juegos .. Mi problema es el siguiente: Luego de instalar unity comence a seguir los pasos de un tutorial basico para crear un entorno 3d, luego de haber creado el terreno , skybox etc . coloque el personaje en 3ra persona prefabricado que trae unity,, y al darle play me doy cuenta que este corre al lado izquierdo , puedo moverlo con las flechas a otras direcciones pero si dejo de presionar igual se va corriendo a la izquierda,, busque en esta comunidad ayuda y encontre un tema similar . realice los pasos para su solucion que era revisar los valores de la fisica : edit/proyect settings/physics y los valores estan bien : X: 0 Y: -9,81 Z: 0 . luego cree una interfaz 2d y el personaje por defecto tambien se va hacia la izquierda, descargue un proyecto de un juego de space shooter y la nave se va hacia la izquierda.. antes de indagar sobre el teclado les aclaro que lo desconecte para ver si era ese el problema y el personaje seguia moviendose en esa direccion.. necesito ayuda porque de verdad no se que mas hacer.. gracias :-)
  7. Hola , tengo un problema , esque estoy haciendo un proyecto de un juego de karts , y necesito ayuda , ya he introducido en unity 5 el kart , pero no me funciona , el whell collider de las 4 ruedas me sale en medio del chasis y nose si es por eso pero el coche no me va para delante , queria saber si hace falta script o algo para hacer funcionar el kart , cuando le doy al play se me va para la derecha pero sin apretar nada , el solo se va a la derecha sin tirar para adelante y estoy muy agobiado ya que necesito solucionar eso y avanzar.. y estoy muy estancado , porfavor alguien que pueda ayudarme a hacer funcionar el kart... dejo fotos de toda la estructura del kart y saber si hace falta algo mas para que funcione , muchas gracias
  8. osea el script dice algo asi: #pragma strict var jugador3A : boolean = true; var jugador4A : boolean = true; var usuario : int = 1; var Tomas : int = ; var Player1 : GameObject; var Player2 : GameObject; var Player3 : GameObject; var Player4 : GameObject; function Update(){ if(usuario == 1){ Player1.SetActiveRecursively(true); Player2.SetActiveRecursively(false); Player3.SetActiveRecursively(false); Player4.SetActiveRecursively(false); } if(usuario == 2){ Player1.SetActiveRecursively(false); Player2.SetActiveRecursively(true); Player3.SetActiveRecursively(false); Player4.SetActiveRecursively(false); } if(jugador3A == true){ if(usuario == 3){ Player1.SetActiveRecursively(false); Player2.SetActiveRecursively(false); Player3.SetActiveRecursively(true); Player4.SetActiveRecursively(false); } } else if(jugador4A == true){ if(usuario == 4){ Player1.SetActiveRecursively(false); Player2.SetActiveRecursively(false); Player3.SetActiveRecursively(false); Player4.SetActiveRecursively(true); } } } mi problema radica en que aunque yo deje a jugador 4A como activo y que usuario=4 que el gameobject Player4 no se activa pero cuando usuario = 1,2 o 3 todo funciona bien, que puede ser que este fallando?
  9. No se como llamar a los inputfield tengo 2, uno se supone que es el "USUARIOTEXT" el otro es "PASSWORDTEXT", pero no se como hacer una llamada hacia el código para que haga esto SELECT * FROM usuarios WHERE usuario='" + USUARIOTEXT + "'AND password='" + PASSWORDTEXT + "' ", conex()); pero me dice que el USUARIOTEXT ni el PASSWORDTEXT no lo conoce no se si necesite crear una variable ayuda soy nuevo en esto.
  10. Buenos días a todos! Desde hace unos días, que intentando hacer un script en c#, sin éxito ninguno, para programar lo siguiente: - Cuando pulso la tecla 4 se reproduce la animación de abrir, si vuelvo a pulsar la tecla 4 y ya se ha reproducido la animación de abrir, reproduce la de cerrar. Este es mi script: public class OpenandCloseCortinas : MonoBehaviour { public Animation anim; public bool animopen; public bool animclose; // Use this for initialization void Start() { anim = GetComponent<Animation>(); anim["Open2"].wrapMode = WrapMode.Default; anim["Close2"].wrapMode = WrapMode.Default; } // Update is called once per frame void Update() { if (Input.GetKey("4") && anim["Open2"].enabled == false) { anim["Open2"].enabled = true; anim.Play("Open2"); } else if (Input.GetKey("4") && anim["Open2"].enabled == true) { { anim["Close2"].enabled = true; anim.Play("Close2"); } } } } No consigo ver donde esta el fallo, ya que me reproduce la de abrir correctamente pero la parte de cerrar no me hace bien... Una guía o una ayuda me iria muy bien! Gracias! pd_Aviso que no es mi fuerte esto de programar ya que soy novata en script!!
  11. Hola estoy intentando poder inclinar una nave con el joystick pero no he podido. ¿como podría hacerlo? si me pudieran ayudar porfavor se los agradecería mucho. Este es el codigo que me funciona sin el joystick: using UnityEngine; using System.Collections; public class PlayerController2 : MonoBehaviour { public float speed; public float tilt; void FixedUpdate() { float moveHorizontal = Input.GetAxis("Horizontal"); float moveVertical = Input.GetAxis("Vertical"); Vector3 movement = new Vector3(moveHorizontal, moveVertical, 0.0f); GetComponent<Rigidbody>().velocity = movement * speed; GetComponent<Rigidbody>().rotation = Quaternion.Euler(0.0f, 0.0f, GetComponent<Rigidbody>().velocity.x * -tilt); } } pero aqui muevo la nave con el joystick: using UnityEngine; using System.Collections; using UnitySampleAssets.CrossPlatformInput; public class MoverNave : MonoBehaviour { float sense = 5; public float speed; // Use this for initialization void Start() { } // Update is called once per frame void Update() { transform.Translate(new Vector3(0, CrossPlatformInputManager.GetAxis("Vertical")) * Time.deltaTime * speed); float y = CrossPlatformInputManager.GetAxis("Mouse Y") * sense; transform.Rotate(0, y, 0); transform.Translate(new Vector3(CrossPlatformInputManager.GetAxis("Horizontal"), 0) * Time.deltaTime * speed); float x = CrossPlatformInputManager.GetAxis("Mouse X") * sense; transform.Rotate(x, 0, 0); } } } }
  12. Tengo un pequeño problema cuando toco la pantalla y disparo, lo que pasa es que se activa el touch cuando muevo el joystick y dispara continuamente mientras lo muevo como podria hacerle para que no dispare con el joystick y si dispare cuando toco otra parte de la pantalla. Este metodo es el que utilizo para disparar: Touch myTouch = Input.GetTouch(0); Touch[] myTouches = Input.touches; for (int i = 0; i < Input.touchCount; i++) { Instantiate(disparo, arma1.position, disparo.rotation); Instantiate(disparo2, arma2.position, disparo2.rotation); Instantiate(disparo3, arma3.position, disparo3.rotation); AudioSource audio = GetComponent<AudioSource>(); audio.Play(); } Esto es lo que utilizo para mover la nave mediante un joystick: using UnityEngine; using System.Collections; using UnityStandardAssets.CrossPlatformInput; public class MoverNave : MonoBehaviour { float sense = 5; float vel = 15; // Use this for initialization void Start () { } // Update is called once per frame void Update () { transform.Translate (new Vector3 (0, CrossPlatformInputManager.GetAxis ("Vertical")) * Time.deltaTime * vel); float y = CrossPlatformInputManager.GetAxis("Mouse X") * sense; transform.Rotate(0,y,0); transform.Translate (new Vector3 (CrossPlatformInputManager.GetAxis ("Horizontal"),0) * Time.deltaTime * vel); float x = CrossPlatformInputManager.GetAxis("Mouse X") * sense; transform.Rotate(x,0,0); } } Qué podria hacer al respecto?Si me pudieran ayudar se los agradeceria mucho.
  13. Hola a todos compañeros de UnitySpain, me he alejado un poco de Unity para dedicarme a un proyectillo en visual c# pero he llegado a un punto en el que no tengo ni idea de que hacer. Me gustaria hacer un sistema de input (mas o menos con las mismas funciones que tiene el de unity) pero no se muy bien como recoger la input (tambien estoy teniendo problemillas para implementar el game loop ya que no se muy bien que funciones deberia poner dentro de el loop y tal) Os dejo algo de codigo que tal vez os pueda ser de ayuda ( la clase Input.cs no la pongo porque basicamente solo la he creado, no he hecho nada en ella todavia xD ) (La optimizacion del codigo ahora mismo es lo de menos y muchas de las cosas que tengo hechas son solo provisionales, me gustaria optimizarlo pero primero quiero conseguir que funcione todo) Game.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.Threading; using System.Threading.Tasks; namespace _2DGameTest { class Game { //---------Constants---------\\ public const int Canvas_Width = 600; public const int Canvas_Height = 400; //---------Variables---------\\ private GraphicsEngine graphicsEngine; private Camera _cam; public Camera cam { get { return _cam; } } public Input input = new Input(); public List<GameObject> gameObjectsInstances = new List<GameObject>(); private Thread gameLoopThread; private bool running; //---------Constructor---------\\ public Game () { _cam = new Camera(0, 0); } #region GraphicsEngine public void StartGraphics (Graphics g) { graphicsEngine = new GraphicsEngine(g, this); graphicsEngine.Initialize(); } public void StopGraphics () { graphicsEngine.Stop(); } #endregion public void StartGame () { gameLoopThread = new Thread(new ThreadStart(GameLoop)); gameLoopThread.Start(); running = true; } public void StopGame () { running = false; gameLoopThread.Abort(); } public void GameLoop () { while (running) { Thread.Sleep(1); } } } } GameObject.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.Threading.Tasks; namespace _2DGameTest { class GameObject { //---------Image---------\\ public Bitmap sprite; //---------Position---------\\ public float x; public float y; //---------Size---------\\ private float _width; private float _height; public float width { get { return _width; } } public float height { get { return _height; } } //---------Constructor---------\\ public GameObject (Bitmap sprite, float x, float y) { this.sprite = sprite; this.x = x; this.y = y; this._width = sprite.Width; this._height = sprite.Height; } } } Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace _2DGameTest { public partial class GameForm : Form { private Game game = new Game(); private GameObject player; private GameObject enemy; public GameForm() { InitializeComponent(); player = new GameObject(_2DGameTest.Properties.Resources.Player, 125, 80); enemy = new GameObject(_2DGameTest.Properties.Resources.Enemy, 200, 80); } private void canvas_Paint(object sender, PaintEventArgs e) { Graphics g = canvas.CreateGraphics(); game.StartGraphics(g); game.gameObjectsInstances.Add(player); game.gameObjectsInstances.Add(enemy); } private void GameForm_FormClosed(object sender, FormClosedEventArgs e) { game.StopGraphics(); } /* Esto por algun motivo no funciona y seria una buena referencia para empezar :c private void GameForm_KeyDown(object sender, KeyEventArgs e) { char key = (char)e.KeyValue; switch (key) { case 'W': game.gameObjectsInstances[0].y -= 10; break; case 'A': game.gameObjectsInstances[0].x -= 10; break; case 'S': game.gameObjectsInstances[0].y += 10; break; case 'D': game.gameObjectsInstances[0].x += 10; break; } } */ } }
  14. Disculpen, tengo una duda y espero me puedan ayudar... ¿Es posible hacer que un Input se mantenga presionado mediante un script sin que el usuario presione el botón? No se si me explique, pero detallare mi situacion, tengo configurado un boton que al presionarlo hace que mi jugador se mueva hacia una direccion especifica pero quisiera que mediante otro script el jugador se pueda mover hacia esa direccion sin que el usuario tenga que mantener el boton presionado... _player.SetHorizontalMove(CrossPlatformInputManager.GetAxis ("Horizontal")); _player.SetHorizontalMove(CrossPlatformInputManager.GetAxis ("Vertical")); Esas son las dos lineas que hacen que mi personaje se mueva, pero quisiera saber la forma de hacer que el GetAxis mandara el movimiento de manera constante, sin detenerse y sin la necesidad de presionar una tecla... Espero me puedan ayudar en esto, no pido script hechos, solo que me den una idea de como se podria hacer o como se podria buscar en la documentacion. Muchas gracias
  15. Hola amigos, Tengo un script que me hace desaparecer un objeto de una escena. Antes lo he utilizado con normalidad y funcionaba. Un rato después al probarlo me sale este error: Solo me pasa en una escena, en todas las demás el script funciona a la perfección y sin errores. Me he dado cuenta que cuando se elimina el objeto también se elimina mi FPSControler, pero repito, esto solo sucende en esta escena. Alguna idea? A que se debe?
  16. Hola que tal? mi nombre es Jose, soy nuevo en este mundillo de Unity, empeze a conocer la plataforma y ahora estoy viendo programacion, mi idea es empezar bien de 0 todo, antes de ponerme a hacer algunos proyectos en mente :). Estoy siguiendo un libro de programacion en C# para Unity se llama Learning C# by developing games with Unity 3D: (el libro me ha encantado sobre todo en la forma de separar los estado del juego)mi problema es el siguiente he llegado a una parte que no entiendo bien por que me tira error... using UnityEngine; using Assets.Interfaces; using System.Collections; namespace Assets.States { public class SetupState : IStateBase { private StateManager manager; private GameObject player; private PlayerControl controller; public SetupState (StateManager managerRef) { manager = managerRef; player = GameObject.Find("Jugador"); //Debug.Log (player); controller = player.GetComponent<PlayerControl>(); if (Application.loadedLevelName != "Scene1") { Application.LoadLevel ("Scene1"); } } public void StateUpdate() { if(Input.GetKeyUp(KeyCode.DownArrow)) { Debug.Log ("Estamos dentro del If de rotacion"); controller.transform.Rotate(, controller.setupSpinSpeed * Time.deltaTime, ); } } public void ShowIt() { } } } ese es el codigo de la clase que me tira error: Ese es el error que me tira, tratando de analizar que pasa, hasta donde llegue a entender en la variable player me esta guardando un null, pero no entiendo por que...Si necesitan que suba el codigo de alguna otra clase avisen, pero me parece que esta aca el problema. Agradesco cualquier ayuda, seguire intentando descubrir que es lo que esta pasando saludos y Gracias.
  17. Hola, antes que nadas saludos para todos y decir que esta muy buena la comunidad. Aprendí mucho por estos lados y hoy les traigo una pregunta que me esta volviendo loco.Estoy haciendo un juego de autos y ya logre el movimiento bastante preciso con WheelCollider y demas. El problema es que en el script para hacer andar el motorTorque, se multiplica por "Input.GetAxis("Vertical"), en el caso de acelerar. Como el juego que estoy haciendo es para Android, necesito colocar un botón en pantalla para acelerar, para rotar, etc. Trate de hacerlo de varias formas, entre ellas con GUITexture, o directamente con código en un GameObject que hacia de botón "OnMouseDrag();". La idea seria que al apretar el botón cambie una variable en el código del auto de false a true para ejecutar el motorTorque. Con ambos métodos, a través de una variable static o a través de "GameObject.Find" logre encontrar el objeto y modificar la variable, el motorTorque empieza a andar pero nunca para. Estoy frustrado y supongo que esa no es la forma de hacerlo. Supongo que el truco esta en cambiar el "Input.Axis("Vertical")" por algún Input touch o algo así, pero no doy con nada. Agradeceria su ayuda desde ya. Dejo la parte del código.
  18. Buenas, Estoy utilizando la base de datos SQLite con Unity y he creado un método para insertar valores en dicha BD pero quiero capturar las excepciones que pueden dar una sentencia INSERT INTO y no sé qué tipo de excepción poner. Este es el código: try{ query = "INSERT INTO Docente VALUES('"+dni+"','"+name+"') "; executeQuery (); } catch(){ } Gracias. Un saludo.
×
×
  • Create New...