Menú

Mostrar Mensajes

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.

Mostrar Mensajes Menú

Mensajes - Joawin

#1
Cita de: lightbug date=1480624460No entiendo porque instancias un objeto cambias la posicion y borras el objeto original. Porque mejor no cambias la posicion? estarias haciendo como la pelicula el prestigio SPOILER ALERT-->( que el mago en vez de aparecer en otro lado se clonaba en otra lado y mataba su clon ).
   
   
      Aparte estas instanciando algo que no pones referencia a eso que instancia (fijate como dice http://www.unityspain.com/profile/24492-musaranya/?do=hovercard&referrer=http%253A%252F%252Fwww.unityspain.com%252Ftopic%252F36712-ayudathe-referenced-script-on-this-behaviour-is-missing%252F" href="<___base_url___>/profile/24492-musaranya/" id="ips_uid_2515_5" rel="" style="" title="Go to musaranya's profile">musaranya)
   
   
      ademas las posiciones son identicas.
   
   
       
   
   
      Con respecto al "missing blabla" claramente has borrado algo o movido algo y el componente no encuentra el script. Si sabes donde esta el script eliminá el componente y volvelo a colocar, o buscalo en el mismo buscador del componente.
   
   
      Saludos
   


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!
 



   
      UnityEngine.Object:Instantiate(Object, Vector3, Quaternion)

      post:OnMouseDown() (at Assets/Script/post.cs:30)

      UnityEngine.SendMouseEvents:DoSendMouseEvents(Int32)"
   

[/quote]
 
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
Muchas gracias a todos :DD
#4
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
#5
General (Antiguo) / ¿Manuales de Scripting?
Octubre 20, 2016, 10:37:14 AM
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!! 
#6
Cita de: leocub58 date=1467571837No es muy dificil, te hago un vídeo rapidamente.
   
   
       
   
   
      PD: Lo que hago en el video, de cambiar de color el sprite lentamente lo puedes hacer con Color.Lerp.
   
   

      
         
eature=oembed" width="480">
      
   
   
      GRACIAS AMIGO! Pero no es lo que buscaba ya que eso lo se hacer y lo que yo quiero es algo más complejo con colores aleatorios, pero gracias igualmente.
   


 
#7
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
 
 
#8
[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35782" data-ipsquote-contentcommentid="130491 date=1462270949]Creo que está claro. Si vas a realizar algo serio tienes que pagar, sino tu mismo lo has dicho.Piensa que tu te apoyas en miles de horas de trabajo de terceras personas para realizar el tuyo. No pretendas apropiarte de lo que no has hecho.[/quote]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...
#9
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 https://www.myfonts.com/">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
#10
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! 
#11
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 paradaCó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.
#12
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/b84b3e8d231a3ff11180396cbe728adbaquí 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);
   }
}
}
 
#13
General (Antiguo) / fallo usando OnBecameInvisible
Agosto 03, 2015, 04:38:04 PM
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: 
using UnityEngine;
using System.Collections;public class ArrowDestroyer : MonoBehaviour
{
    void OnBecameInvisible ()
    {
        //Destruimos el objeto padre cuando salga fuera de la pantalla
        Destroy(transform.parent.gameObject);
    }
}[/quote] 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.
#14
General (Antiguo) / Problema para cambiar de nivel
Mayo 24, 2015, 02:57:37 PM
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" rel="external nofollow">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
#15
General (Antiguo) / eliminado
Mayo 20, 2015, 01:18:03 PM
eliminado