Jump to content

Joawin

Fosiles
  • Content Count

    15
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Joawin

  • Rank
    Iniciado

Recent Profile Visitors

447 profile views
  1. Hago que se destruya porque quiero que aparezca en una de las dos posiciones y luego desparezca (Pero ahora que me has dado la idea mejor hago que solo se mueva de un lado al otro). Las posiciones no son idénticas. Y sí, eso es lo que pone el fallo pero no encuentro nada que haya borrado o cambiado... Ya he conseguido arreglar el fallo, gracias a todos igualmente :D
  2. Buenas, tengo un proyecto en el que cuando haces click en una bola esta cambia de posición entre dos posiciones aleatorias, bien pues tras modificar algunos script al darle al play en este proyecto me daba el siguiente error "The referenced script on this Behaviour is missing! He buscado por internet pero me entero tan poco del inglés y el traductor de google es tan malo que me hago un lío! el script del que da el problema using UnityEngine; using System.Collections; public class post : MonoBehaviour { int rand = 0; public GameObject objeto; /*Hago que se genere un numero aleatorio y segun si sale 1 o 2 se posiciona el circulo en la izquierda o derecha.*/ void OnMouseDown() { if (gameObject.tag == "bueno") { rand = Random.Range(1, 3); if (rand == 1) { Vector2 position = new Vector2(1.5f, -2.8f); Instantiate(objeto, position, Quaternion.identity); Destroy(objeto); } if (rand == 2) { Vector2 posit = new Vector2(-1.5f, -2.8f); Instantiate(objeto, posit, Quaternion.identity); Destroy(objeto); } } else if (gameObject.tag == "malo") { Application.LoadLevel("Over"); } } }
  3. Buenas, quiero saber si habría alguna forma más simple de hacer que si un gameobject está activo los demás no lo esten, ya que mi código me parece muy basura querría optimizarlo public GameObject CuadradoG; public GameObject cuadrado; public GameObject TrianguloG; public GameObject triangulo; public GameObject CirculoG; public GameObject circulo; public GameObject PoligonoG; public GameObject poligono; int aleatorio = 0; //----------------------------------------------------------------- void OnMouseDown () { if (gameObject.tag == ("bueno")){ aleatorio = Random.Range (2, 6); Debug.Log (aleatorio); } if (aleatorio == 2){ CuadradoG.SetActive (true); cuadrado.SetActive (true); Debug.Log ("activo"); if (CuadradoG.active = true){ TrianguloG.SetActive (false); triangulo.SetActive(false); CirculoG.SetActive(false); circulo.SetActive(false); PoligonoG.SetActive(false); poligono.SetActive(false); } } if (aleatorio == 3){ TrianguloG.SetActive (true); triangulo.SetActive (true); Debug.Log ("activo"); if (TrianguloG.active = true){ CuadradoG.SetActive (false); cuadrado.SetActive(false); CirculoG.SetActive(false); circulo.SetActive(false); PoligonoG.SetActive(false); poligono.SetActive(false); } } if (aleatorio == 4){ CirculoG.SetActive (true); circulo.SetActive (true); Debug.Log ("activo"); if (CirculoG.active = true){ TrianguloG.SetActive (false); triangulo.SetActive(false); CuadradoG.SetActive(false); cuadrado.SetActive(false); PoligonoG.SetActive(false); poligono.SetActive(false); } } if (aleatorio == 5){ PoligonoG.SetActive (true); poligono.SetActive (true); Debug.Log ("activo"); if (PoligonoG.active = true){ TrianguloG.SetActive (false); triangulo.SetActive(false); CirculoG.SetActive(false); circulo.SetActive(false); CuadradoG.SetActive(false); cuadrado.SetActive(false); } } } (Les asigno un número aleatorio para que los gameobjects aparezcan de forma aleatoria) Gracias :D
  4. Buenas, me estoy iniciando en el mundo de la programación y bueno... si alguien dispone de un pdf o conoce el nombre de alguna web que me pueda ayudar a comprender mejor, me sería de mucha ayuda. PD: No decidme el manual de la web de Unity a mi parecer tiene cosas que no explica bien. GRACIAS!!
  5. Buenas, en mi proyecto quiero insertar un fondo similar al del juego Stack, en el cual es un degradado de dos colores que, al tiempo van cambiando de color. Por ejemplo: Empieza siendo así Y varia a un tono más cálido como este y cambia a otros colores No tengo mucha idea de como desarrollarlo, gracias de antemano a todos :DDD
  6. Si eso está muy bien, pero cuando para hacer un simple juego el cual no sabes si obtendrá ingresos tienes que gastar mas de 1000€ en licencias...
  7. Buenas, me contaron que las imágenes creadas por las programas de pago como Adobe Photoshop o illustrator. Si no tienes comprados dichos programas corres el riesgo de que te denuncien si añades imágenes creadas por esos programas a tu juego, pero... quería saber... ¿hasta que punto es esto común? ¿hay alguna forma de eliminarles el copyright? Lo mismo con las fuentes de letra muchas estan gratis en algunas webs y en otras de pago y en webs como myfonts.com nunca están libres para su uso en juegos y apps para móviles. PD: Los primeros ingresos que obtenga el juego serán destinados a la compra de estas licencias. ¿Soluciones? Gracias de antecodo
  8. Buenas! ¿Cómo podría hacer para que un objeto se moviese de iquierda a derecha por la pantalla? Importante que sea usando C# ¡Gracias!
  9. Buenas, En mi juego (2D) posees una ballesta y cuando le das a disparar sale una flecha. Hasta ahí todo bien, pero la flecha no siempre va donde estás disparando, (izquierda o derecha) suele ir casi siempre a la izquierda así que probé a cambiar el código por el siguiente pero no va, la flecha no sale disparada y se queda parada Código: using UnityEngine; using System.Collections; public class Arma : MonoBehaviour { public Rigidbody flecha; private int speed; void Disparar () { } // Use this for initialization void Start () { this.speed = 5; } // Update is called once per frame void Update () { if (Input.GetButtonDown("Fire1")) { Rigidbody flechaC = (Rigidbody) Instantiate(flecha, transform.position, transform.rotation); flechaC.velocity = transform.forward speed Time.deltaTime; } } }Además, quiero que la flecha colisione para que cuando toque a un enemigo le reste vida.
  10. Buenas, cuando disparo con mi personaje el proyectil no va a donde está mirando el personaje que es lo que quiero. Si me muevo si que funciona correctamente pero si estoy quieto suele ir para la izquierda siempre aunque mira a la derecha os muestro: https://gyazo.com/b84b3e8d231a3ff11180396cbe728adb aquí los scripts del arma y el ataque: Arma Arrojadiza: using UnityEngine; using System.Collections; //Creamos un tipo enumerado para definir la dirección public enum Direccion { Horizontal, Vertical } public class ArmaArrojadiza : MonoBehaviour { //Variables públicas public Direccion DireccionArma = Direccion.Horizontal; public float Velocidad = 50.0F; //Variables privadas private Rigidbody thisRigidbody; void Start () { thisRigidbody = GetComponent<Rigidbody>(); } void Update () { //Establecemos su velocidad y su dirección if (DireccionArma == Direccion.Horizontal) { //Movemos el arma en horizontal thisRigidbody.transform.Translate(new Vector3(Velocidad, 0, 0) * Time.deltaTime); } else { //Movemos el arma en vertical thisRigidbody.transform.Translate(new Vector3(0, Velocidad, 0) * Time.deltaTime); } } void OnTriggerEnter(Collider other) { if (other.tag == "Enemigo") { //Si el ataque colisiona contra un objeto con el tag 'Enemigo', se decrementan las vidas de dicho enemigo other.gameObject.GetComponent<ComportamientoEnemigo>().Vidas--; //Destruimos el objeto cuando colisione contra un enemigo Destroy(gameObject); } } } Ataque Personaje: using System.Collections; using System; public class AtaquePersonaje : MonoBehaviour { //Creamos una variable pública donde asignar nuestro prefab 'Shuriken' public GameObject ShurikenPrefab; void Update () { //Si pulsamos el botón 'Fire1'... if (ShurikenPrefab != null && Input.GetButtonDown("Fire1")) { //Accedemos al script 'ArmaArrojadiza.cs' del prefab ArmaArrojadiza scriptShuriken = ShurikenPrefab.GetComponent<ArmaArrojadiza>(); if (Input.GetAxis("Vertical") > 0) { //Ataque hacia arriba scriptShuriken.DireccionArma = Direccion.Vertical; scriptShuriken.Velocidad = Math.Abs(scriptShuriken.Velocidad); } else if (Input.GetAxis("Vertical") < 0) { //Ataque hacia abajo scriptShuriken.DireccionArma = Direccion.Vertical; scriptShuriken.Velocidad = -Math.Abs(scriptShuriken.Velocidad); } else if (Input.GetAxis("Horizontal") > 0) { //Ataque hacia la derecha scriptShuriken.DireccionArma = Direccion.Horizontal; scriptShuriken.Velocidad = Math.Abs(scriptShuriken.Velocidad); } else { //Ataque hacia la izquierda scriptShuriken.DireccionArma = Direccion.Horizontal; scriptShuriken.Velocidad = -Math.Abs(scriptShuriken.Velocidad); } //Creamos una instancia del prefab en nuestra escena, concretamente en la posición de nuestro personaje Instantiate(ShurikenPrefab, transform.position, Quaternion.identity); } } }
  11. Buenas, en mi juego posees una ballesta que dispara flechas y para que estas no creen bajadas de fps al generarse muchas flechas puse siguiente script: pero únicamente funciona cuando lo añado con el juego en marcha y si se lo añado antes no dispara las flechas e incluso borra los gameobjects.
  12. Buenas, estoy creando un juego 2D para Android y en este tienes que conseguir darle los clicks que te pide un marcador al personaje mientras corre una cuenta atrás, y cuando consigues darlos todos en ese tiempo, deberías poder cambiar de nivel a uno en el que el personaje vaya más rápido pero no lo consigo hacer, cuando eso para se resetea el nivel, os lo muestro: http://gyazo.com/3e480510a307eb394a0bcc8a3102ecbe (si no se ve el gif) Como pueden comprobar, cuando doy los últimos 5 clicks que me pide (marcador de la derecha) se resetea al igual que el tiempo de nuevo a 20 (el tiempo es el de la izquierda) lo que quiero es que cuando consigas dar los clicks dentro del tiempo se ponga un menú de pausa preparado con el nuevo nivel o en su defecto que se ponga el nuevo nivel ya de golpe y en este pueda hacer que el personaje se mueva más rápido y el tiempo o clicks cambie Esto es lo que actualmente tengo: Función del click var vida: int = 20; //Vida Inicial var GUITextVisualizador : GUIText; var nivel: int = 1; //Nivel Inicial function incremento () { //En desarrollo nivel++; if(nivel == 2){ vida = 30; } } function OnMouseDown () { vida--; GUITextVisualizador.text = vida.ToString(); if(vida == 0){ // Destroy(gameObject); Sin utilidad incremento(); } } function Reiniciar () { //Sin utilidad OnMouseDown(); } Cuenta atrás var valorInicial : int = 5; //GUI Text en el que se va a ver el conteo var GUITextVisualizador : GUIText; function Start () { // Llamada a función contadora CountDown(); } function CountDown(){ if(valorInicial>0){ // Si valorInicial es mayor a 0 GUITextVisualizador.text = valorInicial.ToString(); // Imprimir valorInicial en variable GUI como String yield WaitForSeconds(1); // Esperar 1 segundo antes de ejecutar lo que esta debajo valorInicial--; // Restar 1 a valorInicial Reiniciar(); // Función Loop } else { // Si ya no es mayor a 0 GUITextVisualizador.text = '0'; // 0 Es el último digito mostrado. } if (valorInicial==0) { Application.LoadLevel ("GameOver"); } } function Reiniciar(){ CountDown(); // Ejecutar de nuevo la función contadora } GRACIAS DE ANTEMANO
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...