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 - ramunda

#76
General (Antiguo) / Sonido no suena bien
Agosto 02, 2016, 11:16:47 PM
Cita de: iRobb date=1470172328pon >=2.0f y no 2, que es un float
   


Gracias iRobb pero sigue loopeando :(
 

void Update ()
{
   if (puntuacion >= 2.0f)
   {
      if (!audio.isPlaying)
         osito ();
   }
      Puntos.text = " Puntos " + puntuacion.ToString ();
}
 
void osito()
{
   audio.clip = premio;
   audio.loop = false;
   audio.Play();
}
}

 
 
#77
General (Antiguo) / Sonido no suena bien
Agosto 02, 2016, 11:09:04 PM
Cita de: iRobb date=1470171860No lo entiendo bien, ya que, cada vez que se pare y mientras los puntos sean >= 2, volverá a realizar play. Será como un loop claro.
   


Hay esta la cosa , como decirle que si llega a 2 puntos suene el sonido , he probado con ==2 , pero no funciona...
 
Tonces como seria para decirle que si llega a 2...suene el sonido?
 
 
 
Gracias iRobb.
 
 
#78
General (Antiguo) / Sonido no suena bien
Agosto 02, 2016, 05:04:44 PM
Buenas tardes,
 
tengo un pequeño dilema con un sonido.
 
me aseguro de que no suene nada mas , para que se active al llegar a 2 puntos,
 
Se activa el sonido pero no se para se reproduce una y otra vez...
 
Por mucho que miro no veo donde tengo el fallo....
 
A ver si ustedes me pueden ayudar, gracias.
 
 
 

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class puntos : MonoBehaviour
{
public static puntos instance;
public GameObject fireworks;
public GameObject tiempo;
public GameObject botonnivel1;
public AudioClip premio;
     AudioSource audio;
public void Awake()
{
   puntos.instance = this;
}
public float puntuacion = ;
public Text Puntos;
void Start()
{
   audio = GetComponent<AudioSource>();
   Puntos.text = "" + PlayerPrefs.GetFloat("Totales").ToString("f0");
 
}
   
  void Update ()
{
   if (puntuacion >= 2)
   {
   if (!audio.isPlaying)
   osito ();
 
   Puntos.text = " Puntos " + puntuacion.ToString ();
   }
   }
 
void osito()
{
      audio.clip = premio;
      audio.loop = false;
      audio.Play();
}
}

 
 
#79
General (Antiguo) / raycast va loco
Agosto 01, 2016, 08:50:30 PM
Cita de: iRobb date=1470076503Yo le pondría un linerenderer para ver donde apunta exactamente. Luego el tema de la distancia del raycast, a ver si se queda corto?
   


iRobb ,grandísima idea lo de el line renderer, ni se me había ocurrido.le habia puesto un Debug.Drawline pero claro solo salia cuando se ejecutaba y no se quedaba fijo...
 
 
 
Estaba más torcido que una cola de mono!! por eso a veces puntuaba doble o no puntuaba según se movía el player.El echo de que estuviera torcido es que lo tengo en un empty delante de la escopeta para instanciar la bala etc. y aunque parecía recto....
 
Así que.
 
Muchas gracias por la idea!! ya esta solucionado !! hacia falta un nivel...jejej en este caso linerenderer!!
 
Saludos y gracias!!
 
 
 
 
 
 
 
 
#80
General (Antiguo) / raycast va loco
Agosto 01, 2016, 02:05:50 AM
Hola buenas noches, queria preguntarles a ver si tienen alguna idea de porque el Raycast falla en este caso.
 
Bueno tengo un simple sistema de disparo el cual instancia un prefab y da fuerza a el RB etc.
 
Esto va de perlas .
 
El problema es cuando el raycast detecta el objecto al que colisiona en este caso "feria", l hace cuando le da la gana , aveces marca aveces no, al igual que se desvía solo , no siempre va recto y no lo entiendo, lo se por la marca de el agujero de la bala que instancia , si te mueves un poco es como si tardara en reaccionar o no se...alomejor se pega con todo lo que instancia y rebota..puede ser?
 
Lo curioso es que el objeto en si se destruye bien .
 
dejo el script , gracias de antemano.
 
 
 

using UnityEngine;
using System.Collections;
public class disparabolasandroid : MonoBehaviour {
public GameObject CannonBall;
public float shotForce = 1000;
AudioSource audio;
public GameObject explosion;
GameObject cannonBall;
public AudioClip sonidocanon;
private Animation anim;
public GameObject agujero;
public GameObject xispa;
 
void Start()
{
audio = GetComponent < AudioSource> ();
anim = GameObject.Find("pistola").GetComponent<Animation> ();
}
   
public void disparabola()
{
if (Input.GetMouseButtonDown())
explosion.SetActive (true);
cannonBall = GameObject.Instantiate(CannonBall as GameObject);
cannonBall.transform.position = transform.position;
RaycastHit hit;
Ray ray = new Ray (transform.position, transform.forward);
if (Physics.Raycast (ray, out hit,300f))
{
if (hit.transform.gameObject.tag == "feria")
{
puntos.instance.puntuacion = +1;
Debug.Log ("PUNTACO");
}
Instantiate (agujero,hit.point,Quaternion.FromToRotation(Vector3.up,hit.normal));
Instantiate (xispa,hit.point,Quaternion.FromToRotation(Vector3.up,hit.normal));
    }
Rigidbody rBody = cannonBall.GetComponent<Rigidbody> ();
rBody.AddForce (transform.forward * shotForce, ForceMode.Force);
audio.PlayOneShot(sonidocanon, 0.7F);
Instantiate (explosion,transform.position,transform.rotation);
cuentabolas.instance.bolas -= 1;
anim.Play ("fire1");
}

 
 
 
 
 
 
 
 
 
 
#81
General (Antiguo) / Cancelado
Julio 28, 2016, 04:19:11 PM
 
 
 
#82
General (Antiguo) / Duplicar enemigo
Julio 21, 2016, 09:14:32 PM
Cita de: GSG3D date=1469125602Al detectar una colision estas accediendo al componente "vidaenemigobichos" de tu personaje(que no deberia tenerlo) y no de tu enemigo, deberias usar other.gameObject.GetComponenent...
   


Si , si y mas si. Tienes toda la razón y me doy de cabezazos por no ver esto también, pero en fin, ya mueren los enemigos de 2 en 2 y de 5 en 5 XDD todo perfecto, voy a postear el script correcto y lo marcare como mejor respuesta dando los merecidos créditos a ustedes 3, si les parece bien.
 
 
 
Gracias a :
 
Braltor,Trunex y GSG3D. los 3 han aportado información util y contundente para resolver esto.
 
Aqui el script final funcionando:
 

using UnityEngine;
using System.Collections;
public class dañoespada : MonoBehaviour {
private GameObject enemigo;   
public int damage = 10;
void Start()
{
enemigo = GameObject.FindWithTag ("enemigo");
}
void OnCollisionEnter(Collision other)
{
if (other.gameObject.tag == "enemigo")
{
other.gameObject.GetComponent<vidaenemigabichos> ().vida -= damage;   
}
Debug.Log ("le haces dañoooo");
}
}

 
 
#83
General (Antiguo) / Duplicar enemigo
Julio 21, 2016, 08:22:15 PM
Muy agradecido a los dos por la pronta respuesta, y si , juer que tonto soy esta claro como no he caído en eso.
 
He cambiado por esto:
 

using UnityEngine;
using System.Collections;
public class dañoespada : MonoBehaviour {
public int damage = 10;
void OnCollisionEnter(Collision other)
{
if (other.gameObject.tag == "enemigo")
{
//vidaenemigabichos.instance.vida -= damage;
GetComponent<vidaenemigabichos>().vida -= damage;
Debug.Log ("le haces dañoooo");

 
y esto:
 

using UnityEngine;
using System.Collections;
public class vidaenemigabichos : MonoBehaviour {

public int vida = 10;
private Animation anim;
public GameObject choke;
public AudioClip muerto;
void Update()
{
 if (vida <= ) {
  Debug.Log ("mueree");
  var clone = Instantiate(choke, transform.position, transform.rotation);
  Destroy (clone,6.0f);
 AudioSource.PlayClipAtPoint(muerto, transform.position);
//sangre.gameObject.SetActive(false);
Destroy(gameObject);
}   
}
   
}

 
Teóricamente ya no es estática y llamándola debería funcionar....pero no funciona...no me dan ningun error pero siguen sin morir.
 
Alguna otra idea?
 
Gracias de antemano.
#84
General (Antiguo) / Duplicar enemigo
Julio 21, 2016, 07:37:07 PM
Buenas tardes,
 
Serian tan amables de darme una luz a este problema?.
 
Explico breve y claro.
 
Tengo una espada la cual esta con sus respectivos colliders y rigids, por otro lado tengo un enemigo el cual al recibir la castaña le baja la vida hasta que muere.
 
Esto funciona de maravilla hasta que duplico este enemigo para tener mas etc y no se porque no se les baja la vida si hay 2 pero si hay 1 si.
 
Daño de espada:
 

using UnityEngine;
using System.Collections;
public class dañoespada : MonoBehaviour {
public int damage = 10;
void OnCollisionEnter(Collision other)
{
if (other.gameObject.tag == "enemigo")
{
vidaenemigabichos.instance.vida -= damage;
//GetComponent<vidaenemigabichos>().vida -= damage;
Debug.Log ("le haces dañoooo");
 
}
}
}

 
vida del bixo:
 

using UnityEngine;
using System.Collections;
public class vidaenemigabichos : MonoBehaviour {
public static vidaenemigabichos instance;
public void Awake()
{
vidaenemigabichos.instance = this;
}
public int vida = 10;
private Animation anim;
public GameObject choke;
public AudioClip muerto;
 
void Update()
{
 if (vida <= ) {
  Debug.Log ("mueree");
  var clone = Instantiate(choke, transform.position, transform.rotation);
  Destroy (clone,6.0f);
 AudioSource.PlayClipAtPoint(muerto, transform.position);
//sangre.gameObject.SetActive(false);
Destroy(gameObject);
}   
}
   
}

 
Gracias.
 
 
 
 
 
 
#85
General (Antiguo) / Correr apretando dos teclas
Julio 14, 2016, 01:33:01 AM
Cita de: juanma_teso date=1468451909Porque se ejecuta en orden, cuando se actualiza el Update ejecuta línea a línea las sentencias, tienes puestos varios else if, en cuanto uno es verdadero los otros no los tiene en cuenta, pon primero la condición doble y luego las simples. Otro consejo es no mover los jugadores con Rigidbody usando el Transform, por las físicas.
   


Correctísimo Juanma_teso, no había caído en lo de que se ejecutaban en orden...
 
Y lo de los else if lo he corregido y simplemente les he puesto un else.
 
Lo de las fisicas wops gracias por el consejo lo cambiare!!
 
 
 
Muchas gracias!!
 
 
 
Dejo el script arreglado para futuras visitas . :)
 
 
 

using UnityEngine;
using System.Collections;
public class moverplayer : MonoBehaviour
{

public float Velocidad = 1.0F; //velocidad caminando
public float Correr = 4.0F;//velocidad corriendo
private Animation anim;
public float jumpHight = 0.5F;
public float jumptime = 0.300F;
public float smoothFactor = 5;

void Start()
{
   anim = GetComponent<Animation> ();
}
 
void Update ()
{
   if (Input.GetKey (KeyCode.RightControl) && Input.GetKey (KeyCode.UpArrow)) {
      Debug.Log ("correee");
      transform.position += transform.forward * Time.deltaTime * Correr;
      //transform.Translate (Vector3.forward * Time.deltaTime * Correr);
      transform.forward = new Vector3 (0f, 0f, 1f);
      anim.Play ("run00");
   }
   // Movemos el objeto hacia adelante
   else {
      if (Input.GetKey (KeyCode.UpArrow)) {
         //transform.Translate (Vector3.forward * Time.deltaTime * Velocidad);
         transform.position += transform.forward * Time.deltaTime * Velocidad;
         transform.forward = new Vector3 (0f, 0f, 1f);
         anim.Play ("walk00");
      }
      else
      {
         if (Input.GetKey (KeyCode.DownArrow)) {
            //atras
            //transform.Translate (Vector3.back * Time.deltaTime * Velocidad, Space.World);
            transform.position += transform.forward * Time.deltaTime * Velocidad;
            transform.forward = new Vector3 (-0f, 0f, -1f);
            anim.Play ("walk00");
         }
         else
         {
            if (Input.GetKey (KeyCode.RightArrow)) {
               //derecha
               //transform.Translate (Vector3.right * Time.deltaTime * Velocidad, Space.World);
               transform.position += transform.forward * Time.deltaTime * Velocidad;
               transform.forward = new Vector3 (1f, 0f, 0f);
               anim.Play ("walk00");
            }
            else
            {
               if (Input.GetKey (KeyCode.LeftArrow)) {
                  //izquierda
                  //transform.Translate (Vector3.left * Time.deltaTime * Velocidad, Space.World);
                  transform.position += transform.forward * Time.deltaTime * Velocidad;
                  transform.forward = new Vector3 (-1f, 0f, 0f);
                  anim.Play ("walk00");
               }
               else
               {
                     anim.Play ("idle01");
               }
      
               }
            }
         }
      }
   }
}

 
 
#86
General (Antiguo) / Correr apretando dos teclas
Julio 14, 2016, 12:58:42 AM
Buenas noches,
 
Una pregunta por favor:
 
Tengo un simple input de teclas que mueven mi personaje con una animación con tecla asignada.
 
Quiero hacer que al apretar la tecla "flecha arriba" + control derecha , pues en vez de andar corra.
 
Para eso he creado dos variables distintas:
 
Velocidad y Correr con sus respectivas animaciones.
 
Pero al apretar simultaneamente o una tras de otra , no se ejecuta , le he puesto un debug,log pero tampoco aparece.
 

using UnityEngine;
using System.Collections;
public class moverplayer : MonoBehaviour
{
// En esta variable configuraremos la velocidad a la que se moverá el objeto
public float Velocidad = 1.0F;
public float Correr = 4.0F;
private Animation anim;
public float jumpHight = 0.5F;
public float jumptime = 0.300F;
public float smoothFactor = 5;
//public Quaternion rotation = Quaternion.Euler(new Vector3(0, 30, 0));
 
 
void Start()
{
   anim = GetComponent<Animation> ();
}
 
void Update ()
{
   
   // Movemos el objeto hacia adelante
   if (Input.GetKey (KeyCode.UpArrow)) {
      transform.Translate (Vector3.forward * Time.deltaTime * Velocidad);
      transform.forward = new Vector3 (0f, 0f, 1f);
      anim.Play ("walk00");
   }
   else if(Input.GetKey(KeyCode.DownArrow))
      
   {
      //atras
      transform.Translate(Vector3.back * Time.deltaTime * Velocidad,Space.World);
      transform.forward = new Vector3(-0f,0f,-1f);
      anim.Play ("walk00");
   }
   else if(Input.GetKey(KeyCode.RightArrow))
   {
      //derecha
      transform.Translate(Vector3.right * Time.deltaTime * Velocidad,Space.World);
      transform.forward = new Vector3(1f,0f,0f);
      anim.Play ("walk00");
   }
   else if(Input.GetKey(KeyCode.LeftArrow))
   {
      //izquierda
      transform.Translate(Vector3.left * Time.deltaTime * Velocidad,Space.World);
      transform.forward = new Vector3(-1f,0f,0f);
      anim.Play ("walk00");
   }
   else if(Input.GetKey(KeyCode.UpArrow) && Input.GetKey(KeyCode.RightControl))
   {
      
      Debug.Log ("correee");
      transform.Translate (Vector3.forward * Time.deltaTime * Correr);
      transform.forward = new Vector3 (0f, 0f, 1f);
      anim.Play ("run00");
   }
   else
   {
   anim.Play ("idle01");
   }
      
}
}

 
Agradeceria un consejo .
 
Gracias
 
 
 
 
 
 
 
 
#87
General (Antiguo) / Activar/Desactivar un Gameobject
Julio 10, 2016, 12:56:41 PM
Arthure, entiendo lo que dices y lo respeto, pero en algo discrepo ya que el tema empezó si, pero las siguientes respuestas fueron sobre el mismo tema . mismo hilo y simpre sobre lo expuesto por un experto, y lo que comentas de falta de esfuerzo....no lo discutiré pero si lees todos los posts de este hilo veras que muchos son por intentar solucinarlo por mi cuenta y solo, si según la respuesta expuesta por el experto no funciona sobre la solución presentada.
 
Pido disculpas si he ocasionado molestias o discordias.
 
Si vees uno de mis últimos replies solo pedía la ultima instruccion para cerrar el tema , y lo expuse tal cual.
 
Ya que estaba todo entendido y solucionado.
 
Que no se contesto, pues ya me buscare la vida. 
 
 
 
Se agradece infinitamente.
 
Saludos
 
 
 
 
 
 
 
 
#88
General (Antiguo) / Activar/Desactivar un Gameobject
Julio 10, 2016, 11:24:39 AM
Cita de: pioj date=1468134240¿Qué está ocurriendo aquí? ¿Se  ha resuelto el problema sí o no?
   
   
      Marcad la mejor respuesta y resumid un poco todo si creéis que puede resultar interesante para otros usuarios, por favor, porque el seguimiento de este Topic es un desastre...
   


El resumen esta echo, Kaito, es el que lo ha resuelto lo marcare como mejor respuesta, solo faltaba lo mas importante pero si queréis cerradlo lo cerramos,solo me faltaba saber lo que pregunte al principio se fue arreglando todo hasta llegar aquí. 
#89
General (Antiguo) / Activar/Desactivar un Gameobject
Julio 10, 2016, 12:09:54 AM
Kaito, ya tengo el problema de los errores.
 

using UnityEngine;
using UnityEngine.SceneManagement;
public class selectlevels : MonoBehaviour
{
   
    void Start()
    {
        DontDestroyOnLoad(this.gameObject);
        this.Menu();
        Debug.Log("Start");
    }
    //Ir a escena Nivel1
    public void Nivel1()
    {
        Application.LoadLevel("leñador");        
        this.transform.Find("Nivel1").gameObject.SetActive(true);
        this.transform.Find("Menu").gameObject.SetActive(false);
        Debug.Log("nivel1");
    }

 
Sustituido :
 

SceneManager.LoadScene("leñador");

 
por Application.LoadLevel...de momento no falla , ahora me queda arreglar el canvas que los menus ahora van locos.
 
Pero algo tenemos :)
 
Gracias.
 
Definitivamente ya no falla era eso no mas.
 
Y solo Falta una cosaaaaaaaaaaa y cerramos el post!!!
 

Canvas.transform.Find("Menu").gameObject.SetActive(false);

 
Ya tenemos el GameObject padre = Canvas.
 
Tenemos los hijos= Nivel1 y Menu
 
entonces dime por favor como los desactivooo o activo porque con lo que te he puesto arriba no funciona...
 
Y ahora que lo tenemos al huevo...
 
:)
 
 
 
 
 
 
#90
General (Antiguo) / Activar/Desactivar un Gameobject
Julio 09, 2016, 11:28:39 PM
Cita de: kaito date=1468098368Lo único que se me ocurre sobre SceneManager, es que te falta especificar el espacio de nombre UnityEngine.SceneManagement.
   
   

using UnityEngine.SceneManagement;

   
      Ya solo queda subir el proyecto al foro. Desde aquí creo que ya no se puede hacer mucho más.
   


Eso esta puesto en el Script que me pasastes esta en la parte de arriba:
 
 
 

using UnityEngine;
using UnityEngine.SceneManagement;
public class selectlevels : MonoBehaviour
{
   
    void Start()
    {
        DontDestroyOnLoad(this.gameObject);
        this.Menu();
        Debug.Log("Start");
    }
    //Ir a escena Nivel1
    public void Nivel1()
    {
        SceneManager.LoadScene("leñador");        
        //this.transform.Find("Nivel1").gameObject.SetActive(true);
        //this.transform.Find("Menu").gameObject.SetActive(false);
        Debug.Log("nivel1");

 
no sera eso que te dije que dentro de el canvas donde esta el script Seleclevels esta vacio?
 
 
 

 
Cita de: ramunda date=1468099719Eso esta puesto en el Script que me pasastes esta en la parte de arriba:
   
   
       
   
   

using UnityEngine;
using UnityEngine.SceneManagement;
public class selectlevels : MonoBehaviour
{
   
    void Start()
    {
        DontDestroyOnLoad(this.gameObject);
        this.Menu();
        Debug.Log("Start");
    }
    //Ir a escena Nivel1
    public void Nivel1()
    {
        SceneManager.LoadScene("leñador");        
        //this.transform.Find("Nivel1").gameObject.SetActive(true);
        //this.transform.Find("Menu").gameObject.SetActive(false);
        Debug.Log("nivel1");

   
      no sera eso que te dije que dentro de el canvas donde esta el script Seleclevels esta vacio?
   
   
       
   
   
      
   


Y veo que tambien dentro de EventSystem hay un apartado vacio: