Jump to content
UnitySpain

Aceptamos donaciones vía Paypal.

UnitySpain.com es un servicio gratuito, pero mantener la Comunidad conlleva una serie de gastos.

Fondo Anual Unityspain: Donados 58,34€ de 150,00€

  • Servidor: Dominio.com y Hosting Web
  • Mantenimiento de los Foros
  • Contenido y Servicios Extras
  • Mantenimiento para Redes Sociales

kaito

Registrados
  • Content Count

    273
  • Joined

  • Last visited

  • Days Won

    44

kaito last won the day on October 7 2016

kaito had the most liked content!

Community Reputation

429 Excellent

1 Follower

About kaito

  • Rank
    Avanzado
  • Birthday 07/29/1974

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Para generar una escena estatica infinita, carretera recta, es mejor cambiar las coordenadas del mapeado de la textura en la malla accediendo al shader o material del objeto. Para manipular objetos con fisicas utiliza la clase Rigidbody desde FixedUpdate, no la Transform desde Update.
  2. Lo mas sencillo es crear una variable publica en la clase, public Sprite[] Sprites[]; Agregar los sprites arrastrando al script y modificar los valores desde Update, void Update () { Wallpaper.sprite = Sprites[index % songs.Length]; }
  3. Si no quieres usar PlayerPrefs, que escribe sobre el archivo registro de Windows, puedes utilizar un Dictionary para recopilar las variables del juego: Guardar variables del juego mediante Dictionary<string,object>
  4. Mira en la documentación las propiedades y miembros del componente/objeto Transform, donde encontraras transform.rotation, la rotación global, y transform.localRotation, la rotación local.
  5. En plataformas móviles, se suele emparentar el actor al transform de la plataforma. No se utiliza físicas.
  6. Podrias 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.B)) { //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); } } } }
  7. Los objetos/clases de UnityEngine no están serializados. Tampoco dispone de una sistema de guardado propio. Tienes que crear tu propio método/sistema para guardar la partida y sus diferentes GameObjects y Componentes. Yo he utilizado/creado este: http://creacionvideojuegos.foroactivo.com/t118-save-load-del-juego-utilizando-clases-serializadas Que consiste en utilizar clases derivadas de un Script Base en cada GameObject para guardar los datos de los componentes. Puedes utilizar prefabs de los GameObjects para facilitar la tarea.
  8. Para crear la cuerda utilizaría una malla 3D animada, con colliders tipo "Trigger" en cada hueso, sin utilizar el motor de físicas. Para el personaje, desactivaría el Rigidbody al estar en contacto con algún Trigger de la cuerda, y emparentaría el Transform del player al hueso de la cuerda. Al saltar o al dejar de estar en contacto con la cuerda, volveria a activar el Rigidbody.
  9. Para utilizar la interfaz UI de forma 3D, necesitas establecer en el componente Canvas el Render Mode como WorldSpace. Al GameObject Canvas(donde se encuentra el componente Canvas, CanvasScaler y GraphicRaycaster) emparentas los objetos 3D(mallas). Y a estos objetos 3D emparentas el Text. De esta forma el texto UI se moverá junto a la malla. Solo tendrás que corregir la posición local dentro del GameObject parent. He creado este script para mostar el texto 3D con un fade-in y un fade-out, y para poder rotarlo hacia la posición del player solo en su eje Y. using UnityEngine; using UnityEngine.UI; using System.Collections; public class TriggerUI : MonoBehaviour { public Transform target; public Collider UICollider; public Graphic[] UIGraphic; public bool targetLookAt = false; public float timeFade = 0f; float fade = 0f; // Update is called once per frame void FixedUpdate () { bool state = this.UICollider.bounds.Contains(this.target.position); if (state) { if (this.fade <= this.timeFade) { if (this.fade <= 0f) { this.fade = 0f; foreach (Graphic graphic in this.UIGraphic) { graphic.enabled = true; } } this.fade += Time.fixedDeltaTime; float alfa; if (this.timeFade <= 0f) { alfa = 1f; } else { alfa = this.fade / this.timeFade; } foreach (Graphic graphic in this.UIGraphic) { Color color = graphic.color; color.a = alfa; graphic.color = color; } } if (this.targetLookAt) { foreach (Graphic graphic in this.UIGraphic) { Vector3 position = target.position; position.y = this.transform.position.y; graphic.transform.rotation = Quaternion.LookRotation(this.transform.position - position); } } } else { if (this.fade >= 0f) { this.fade -= Time.fixedDeltaTime; if (this.fade <= 0f) { foreach (Graphic graphic in this.UIGraphic) { graphic.enabled = false; } } else { float alfa; if (this.timeFade <= 0f) { alfa = 0f; } else { alfa = this.fade / this.timeFade; } foreach (Graphic graphic in this.UIGraphic) { Color color = graphic.color; color.a = alfa; graphic.color = color; } } } } } } El componente Text y el componente Image derivan de la clase Graphic de UnityEngine.UI. De este modo puedes acceder a diferentes tipos de componente UI como imágenes y texto con los que compones la interfaz UI, a modo ventana. UI3D.unitypackage
  10. Puedes utilizar diferentes métodos: 1)Crear un archivo externo de datos, de texto o binario. 2)Pasar parámetros en la llamada a la aplicación externa. Mira la clase Process de .Net 3)Utilizando el archivo de registro de Windows.
  11. Usa como icono la foto de una tia en pelotas. Y a lo mejor encuentras algún agradecido. Saludos.
  12. Ya he corregido el enlace: Datos Multi-Lenguaje
  13. En los juegos multilenguaje se modifica todo: texto, imágenes y voces. Yo utilice este método: Datos Multi-Lenguaje Muchos juegos almacenan los texto en archivos .txt, y durante la instalación se instalan diferentes tipos de archivos de sonidos e imágenes. Unity puede acceder a imágenes y sonidos externos con la clase WWW, si quieres utilizar este ultimo método. También podrias crear diferentes Build del juego en cada idioma. Solo tendrías que modificar los asset desde el Editor de Unity. Pero esta opción no permite al jugador modificar o añadir nuevos idiomas.
  14. Yo lo intenté hacer una vez, y Unity no me dejaba tener activos más de 1000 componentes tipo Collider. Es necesario crear Collider tipo TriggerArea, para activar/desactivar grupos de GameObject con o sin Collider(árboles, arbustos, casas, personajes,....) y mejorar el rendimiento de renderizado, físicas y IA.
  15. Utiliza typeof de C#: foreach(Component component in this.GetComponents<Component>()) { if(component.GetType()!= typeof(Transform)) Debug.Log(component.GetType().ToString()); }
×
×
  • Create New...