Lógica del Input y de la cámara
Ahora vamos a manejar los input del usuario, pero sólo vamos a guardar los valores introducidos, de modo que cada componente que los necesite los utilice con su propia lógica.
El código del «InputHandlerScript» es el siguiente:
- using UnityEngine;
- using System.Collections;
- public class InputHandlerScript : MonoBehaviour
- {
- //ACCESOS DE TECLADO
- //Camera
- KeyCode _cameraUpKey1 = KeyCode.UpArrow;
- KeyCode _cameraUpKey2 = KeyCode.W;
- KeyCode _cameraDownKey1 = KeyCode.DownArrow;
- KeyCode _cameraDownKey2 = KeyCode.S;
- KeyCode _cameraLeftKey1 = KeyCode.LeftArrow;
- KeyCode _cameraLeftKey2 = KeyCode.A;
- KeyCode _cameraRightKey1 = KeyCode.RightArrow;
- KeyCode _cameraRightKey2 = KeyCode.D;
- //Control
- KeyCode _selectionKey1 = KeyCode.Mouse0;
- KeyCode _selectionKey2 = KeyCode.Return;
- KeyCode _keepSelectionKey1 = KeyCode.LeftShift;
- KeyCode _keepSelectionKey2 = KeyCode.RightShift;
- KeyCode _invertSelectionKey1 = KeyCode.LeftControl;
- KeyCode _invertSelectionKey2 = KeyCode.RightControl;
- //Input State
- public Vector3 _mousePosition;
- public bool _cameraUp;
- public bool _cameraDown;
- public bool _cameraLeft;
- public bool _cameraRight;
- public bool _selectingBegins;
- public bool _selectingEnds;
- public bool _keepSelection;
- public bool _invertSelection;
- // Use this for initialization
- void Start ()
- {
- }
- // Update is called once per frame
- void Update ()
- {
- //Reseteamos el input
- this.ResetKeys();
- //Checkeamos los nuevos valores
- this.CheckInput();
- }
- private void ResetKeys()
- {
- //Guardamos la posición del ratón, por si alguien hace uso de ella
- this._mousePosition = Input.mousePosition;
- this._cameraUp = false;
- this._cameraRight = false;
- this._cameraDown = false;
- this._cameraLeft = false;
- this._selectingBegins = false;
- this._selectingEnds = false;
- //El keepSelection y el invertSelection se resetean cuando se deja de pulsar el botón
- }
- //Handles keyboard and mouse input
- void CheckInput()
- {
- #region Camera
- if (Input.GetKey(_cameraUpKey1)
- || Input.GetKey(_cameraUpKey2))
- {
- this._cameraUp = true;
- }
- if (Input.GetKey(_cameraDownKey1)
- || Input.GetKey(_cameraDownKey2))
- {
- this._cameraDown = true;
- }
- if (Input.GetKey(_cameraLeftKey1)
- || Input.GetKey(_cameraLeftKey2))
- {
- this._cameraLeft = true;
- }
- if (Input.GetKey(_cameraRightKey1)
- || Input.GetKey(_cameraRightKey2))
- {
- this._cameraRight = true;
- }
- #endregion
- #region Control
- if (Input.GetKeyDown(_selectionKey1)
- || Input.GetKeyDown(_selectionKey2))
- {
- this._selectingBegins = true;
- }
- else if (Input.GetKeyUp(_selectionKey1)
- || Input.GetKeyUp(_selectionKey2))
- {
- this._selectingEnds = true;
- }
- if (Input.GetKeyDown(_keepSelectionKey1)
- || Input.GetKeyDown(_keepSelectionKey2))
- {
- this._keepSelection = true;
- }
- if (Input.GetKeyUp(_keepSelectionKey1)
- || Input.GetKeyDown(_keepSelectionKey2))
- {
- this._keepSelection = false;
- }
- else if (Input.GetKeyDown(_invertSelectionKey1)
- || Input.GetKeyUp(_invertSelectionKey2))
- {
- this._invertSelection = true;
- }
- else if (Input.GetKeyUp(_invertSelectionKey1)
- || Input.GetKeyUp(_invertSelectionKey2))
- {
- this._invertSelection = false;
- }
- #endregion
- }
- }
Vamos a arrastrarlo al «GameLogic» igual que hicimos con el «GameLogicScript».
Me encants está sección *O* ,antes daba un poco de programación,nada del otro mundo pero ya se me ha olvidado casi todo T^T
hace un mes o dos colgamos un tutorial más simple para mover un objeto por la pantalla =P
Sí, la verdad es que este tutorial me ha quedado un poquito bastante denso.
Espero que con el código fuente, por lo menos la gente pueda trastear y ver cómo está todo si se pierden en algún punto del tutorial y no les sale ;).
Buenas, estaba trasteando y me he quedado un poco colgado en la primera parte con el script, me da un error en la linea 14
«GameObject fighter = Resources.Load(“FighterObject”)»
Podrias poner de nuevo la fuente de ejemplo para ver como está la jerarquia y despejar mis dudas? Porque da error.
Gracias