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ú

Temas - Lucky-chan

#1
Buenas, aquí yo otra vez.
 
Esta vez he tenido un pequeño problema, la script que adjuntaré a continuación según yo no tiene errores pero al presionar el botón "F" no sucede nada... he puesto un Print para comprobar si las instrucciones llegan a ese punto y nop, no detecta cuando presiono el botón, la verdad me he estado comiendo la cabeza por media hora y no entiendo por que no funciona, probablemente sea una tontería pero no lo veo...
 
Aparte si tienen consejos para no usar tantos "if" lo agradecería ya que no tengo idea de si hay otra forma.
 
Gracias de antemano
 

   public GameObject Text;
    public GameObject Player;
    public GameObject Illumination;
    private bool ON = false;
    private AudioSource Tuturu;
    private GameObject Kill;
    public GameObject Tuturu2;
    // Start is called before the first frame update
    void Start()
    {
        Illumination = GameObject.FindGameObjectWithTag("Lights");
        Text = GameObject.FindGameObjectWithTag("Action");
        Player = GameObject.FindGameObjectWithTag("Player");
        Tuturu = GameObject.FindGameObjectWithTag("Sound").GetComponent<AudioSource>();
        Kill = GameObject.FindGameObjectWithTag("MarkedForDelete");
        Illumination.SetActive(false);
        Text.SetActive(false);
    }
    void OnTriggerEnter(Collider Col)
    {
        if (ON == false)
        {
            if (Input.GetKeyDown(KeyCode.F))
            {
                print("Activated");
                Tuturu.Play();
                Illumination.SetActive(true);
                ON = true;
                Kill.SetActive(false);
                Tuturu2.SetActive(false);
                Destroy(this);
            }
            Text.SetActive(true);
        }
    }
    void OnTriggerExit(Collider Col)
    {
        if (ON == false)
        {
            Text.SetActive(false);
        }
    }
 
}

 
 
#2
buenas tardes a todos. pues eso acabo de hacer una app para google play pero me tira una ###### de que necesito actualizar el codigo a 64 bit, no entiendo muy bien a que se refiere, joder he hecho apps de la misma forma en la que hice esta y no tocaba tanto los ####### para subir una app, igual tuve que quitar las adds de la app por que me salía error con el "graddle"
 
que necesito hacer para poder subir esta mamada >:V
 
gracias de antemano
 
#3
Scripting / respawnear al morir?
Abril 03, 2019, 08:01:02 PM
Buenos días a tod@s, hoy tengo otro problema, he estado varios días investigando y buscando pero no he logrado hacer que esta "funcion(?)" funcione (valga la redundancia) es algo básico creo, simplemente un "Level Manager" que controla los checkpoints y la muerte del personaje, luego los checkpoints que simplemente se encargan de ajustar la nueva posición de resurrección, básicamente lo que sucede es que no he encontrado como hacer que cuando la "HP" llegue a 0 el pj muera, pero por la mala forma en que construí el sistema del HP hace que desconozca como llamar la float en la sección que necesito, aquí los scripts y como siempre gracias por la ayuda.
 

   void Update()
    {
        if (HPBar.getHP/.HP == 0)//aqui es donde intento conseguir la FLoat
        {
            LevelManager.RespawnPlayer();
        }


  // esta es toda la script de la barra de HP, básicamente todo el tema del Hp lo manejo por esta script que va a la barra
Slider Barra;
    public LevelManager levelManager;
    private float MaxHP = 3f;
    private float Hp;
    public bool Dead;
    public GameObject player;
    // Start is called before the first frame update
    void Awake()
    {
        levelManager = FindObjectOfType<LevelManager>();
        Barra = GetComponent<Slider>();
    }
    public void Start()
    {
        Barra.maxValue = MaxHP;
        Barra.value = MaxHP;
    }
    // Update is called once per frame
    public void update()
    {
        Barra.value = Hp;
    }
    public void TakeDamage(float amount)
    {
        Barra.value = Mathf.Clamp(Barra.value-amount, 0f, MaxHP);
        if (Barra.value == 0)
        {
            StartCoroutine(Espera());
            levelManager.RespawnPlayer();
            Hp += 3f;
        }
    }
    IEnumerator Espera()
    {
        yield return new WaitForSeconds(2);
    }
}


//esta es la script del Level manager
public GameObject ChekkuPointo;
    public GameObject Player;
 
    public void RespawnPlayer()
    {
        Player.transform.position = ChekkuPointo.transform.position;
    }
}

 
como siempre estoy segura que se logra de manera estúpidamente fácil pero no lo logro 
#4
buenas tardes, hoy tengo un problema con una barra de vida, que al iniciar el juego el valor inicial es 0. obviamente le puse que el valor inicial sea 3.
 
En pocas palabras quiero que sean solo 3 puntos de vida y que con cada golpe se reduzca 1 la vida, pero de hecho ni siquiera empieza con la vida total y noté que siquiera reconoce la void "TakeDamage" la cual llamo mas abajo.
 
estoy bastante segura de que revisé ya todo lo que pudiera estar causando problemas y no vi nada o no se reconocerlo...
 
script que controla la Barra de vida
 

   public Animator anim;
    public float Health =3f;
    // Start is called before the first frame update
    void Start()
    {
       
        anim.SetFloat("Health", Health);
    }
    // Update is called once per frame
    public void TakeDamage(int amount)
    {
        print("reach");
        Health = Mathf.Clamp(Health-amount, 0, 3);
        Health -= amount;
    }
}

 
bloque que resta(?) la vida
 

   public void EnemyKnockBack(float enemyPosX)
    {
        HPBar.SendMessage("TakeDamage", 1);
        jump = true;
        float side = Mathf.Sign(enemyPosX - transform.position.x);
        rb2d.AddForce(Vector2.left * side * jumpPower, ForceMode2D.Impulse);
        CanMove = false;
        Invoke("EnableMOV", 0.7f);
        spr.color = Color.red;
     }

 
 
#5
Scripting / como hacer un interruptor?
Marzo 16, 2019, 08:01:40 PM
hola a todos, me preguntaba como hacer un interruptor, me refiero que al presionar un botón se encienda la antorcha,y al presionarlo de nuevo apagarla pero la bool  "TorchAble" esta hecha para que solo se pueda usar cuando un objeto especifico con la 2da script que puse, este en la escena, funciona bien pero la antorcha no se apaga cuando vuelvo a presionar el botón. 
 

              public bool TorchAble;
      if (Input.GetKeyDown(KeyCode.F) && TorchAble == true)
            {
                gameObject.SetActive(true);
            }
                                 


//referencia a lo de arriba
public class TorchAble : MonoBehaviour
{
    public Player player; //referencia a la script "player"
    // Start is called before the first frame update
    void Start()
    {
        player.TorchAble = true;
       
    }
}

 
 
 
 
#6
hola, buenos días, hoy tengo otro problema, mi script dice que cuando el jugador salte sobre el enemigo este muera y reproduzca corrutina que ejecute una partícula de muerte, el problema es que por alguna razón mi enemigo no muere cuando el jugador cae sobre el, que podría estar mal en mi script?
 

   void OnTriggerEnter2D(Collider2D col)
    {
        if (col.gameObject.tag == "Player")
        {
            float yOffset = 0.6f;
            if (transform.position.y + yOffset < col.transform.position.y)
            {
                StartCoroutine(FXCoroutine());
            }
        }
    }
    private IEnumerator FXCoroutine()
    {
        ParticleChan.Play();
        while (ParticleChan.IsAlive())
        {
            yield return null;
        }
        Destroy(gameObject);
    }
}

 
a como lo veo no hay ningún error
#7
Scripting / Problema con PlayerController
Marzo 14, 2019, 05:20:54 PM
hola a todos, algunos ya me conocen del foro principal :v así que no creo que sea necesario que me presente xd.
 
en fin mi problema es este básicamente, no me reconoce el player controller... 
 
todo esto es básicamente para detectar cuando "Tomoe" esta en el aire o en el suelo para poder usar el animator para cambiar de animación.
 

public class grounded : MonoBehaviour
{
    private PlayerController player;
    // Start is called before the first frame update
    void Start()
    {
        player = GetComponentInParent<PlayerController>();
    }
    void OnCollisionStay2D(Collision2D collision)
    {
        player.grounded = true;
    }
    void OnCollisionExist2D(Collision2D col)
    {
        player.grounded = false;
    }
 
}

 
 gracias de antemano por la ayuda, como siempre jeje xD
 
edito, ya encontré el problema, soy una retrasada :v
#8
General (Antiguo) / Ayuda con esta script por favor
Mayo 19, 2018, 06:06:47 PM
Hola querìa saber como hago para usar esta misma script pero cambiar el rigidbody por un character controller, gracias de antemano
 

[RequireComponent(typeof(Rigidbody))]
public class ThirdPersonControllerCustom : NetworkBehaviour {
Rigidbody _rb;
Animator _anim;
Transform _Cam;
FreeLookCam _FreeCam;
 
public float Velocity;
// Use this for initialization
void Awake () {
   _Cam = Camera.main.transform;
   _rb = GetComponent<Rigidbody> ();
   _anim = GetComponent<Animator> ();
   _FreeCam = GameObject.FindObjectOfType<FreeLookCam> ();
}

// Update is called once per frame
void Update ()
{
   if (!isLocalPlayer)
      return;
   if (_FreeCam.Target != transform)
      _FreeCam.SetTarget(transform);
 
   if (_anim.GetCurrentAnimatorStateInfo (0).IsName ("Locomotion"))
   {
      float vertical = Input.GetAxis ("Vertical");
      if (vertical > 0) {         
         _anim.SetFloat ("Velocidad", vertical);
         transform.eulerAngles = new Vector3 (transform.eulerAngles.x, _Cam.eulerAngles.y, transform.eulerAngles.z);
         _rb.velocity = transform.forward * Velocity * vertical * (Input.GetKey (KeyCode.LeftShift) ? 2 : 1);
      }
      if (Input.GetMouseButtonDown (0)) {
         _anim.SetTrigger ("Ataque");
                Ray r = Camera.main.ScreenPointToRay(Input.mousePosition);
      }
        }
   
}
    }

 
 
#9
Pues resulta que estaba programando una script que básicamente me hace una transición de fade pero sale el nombre del mapa en pantalla, ya e programado lo de los "TargetMap.Name"
 
aqui una parte del script
 

   IEnumerator OnTriggerEnter2D (Collider2D col) {
        // Al chocar el jugador contra el warp comprobamos si es el jugador y lo transportamos
        if (col.CompareTag ("Player")) {
            // Empezamos la trancisión fadeIn y desactivamos los controles de animación y movimiento
            FadeIn ();
            col.GetComponent<Animator> ().enabled = false;
            col.GetComponent<Playermovement> ().enabled = false;
            // Esperamos el tiempo que dura la transición
            yield return new WaitForSeconds (fadeTime);
            // Actualizamos la posición y cámara, deshacemos transición y reactivamos los controles
            col.transform.position = target.transform.GetChild (0).transform.position;
            Camera.main.GetComponent<MainCamera>().SetBound(targetMap);
            FadeOut ();
            col.GetComponent<Animator> ().enabled = true;
            col.GetComponent<Playermovement> ().enabled = true;
            // Por último mostramos el nombre de la zona 2 segundos
            StartCoroutine(area.GetComponent<Area>().ShowArea(targetMap.name));
        }
    }

 
me tira un error que dice:
 



   
      NullReferenceException: Object reference not set to an instance of an object
   

[/quote]
 

 
 
y me manda a este fragmento
 

StartCoroutine(area.GetComponent<Area>().ShowArea(targetMap.name));

 
si me pudieran ayudar se los agradecería como siempre xd
 
Nota: seguro es alguna tontería pero no lo logro resolver
 
les dije que sería una estupidez...
 
olvide asignarle la respectiva script al objeto para que pudiera funcionar esta script 
#10
General (Antiguo) / Problema al convertir apk
Septiembre 25, 2017, 07:58:25 PM
aquí yo otra vez, que raro yo pidiendo ayuda no?
 
pues resulta que estaba intentando convertir una apk y me sale el error que adjuntaré
 
ya he convertido anteriormente juegos para android con ese mismo sdk path y no me había dado error, igualmente ya había convertido ese juego a apk
 
si me pudiesen ayudar se los agradecería mucho :V
 
 
 
#11
General (Antiguo) / script de puerta no detecta cuando salgo
Septiembre 18, 2017, 05:59:22 PM
Pues resulta que estaba haciendo una scrip (no, en serio) y pues la idea es que la script haga una puerta deslizante osea que se abra cuando entro y se cierre cuando salgo y pues cuando entro, da la animación de abrir pero cuando salgo la animación no funciona y el collider que es para que el jugador no pase no se vuelve a activar, lo mismo con las booleans 
 
aquí el código 
 

public class dooropen : MonoBehaviour
{
public GameObject collisionobject;
public GameObject DoorAnimator;
private Animator animate;
public void OnTriggerEnter(Collider other)
{
   if (other.tag == "Player")
   {
      animate = DoorAnimator.gameObject.GetComponent<Animator>();
      animate.SetBool ("isOpen", true);
      collisionobject.SetActive (false);
      Debug.Log ("entered");
   }
}
 
public void OntriggerExit(Collider other)
{
   if (other.tag == "Player")
   {
      animate = DoorAnimator.gameObject.GetComponent<Animator>();
      animate.SetBool ("isOpen", false);
      collisionobject.SetActive (true);
      Debug.Log ("exit");
   }
}
}

 
 
#12
General (Antiguo) / script de puerta no detecta cuando salgo
Septiembre 18, 2017, 05:59:19 PM
Pues resulta que estaba haciendo una scrip (no, en serio) y pues la idea es que la script haga una puerta deslizante osea que se abra cuando entro y se cierre cuando salgo y pues cuando entro, da la animación de abrir pero cuando salgo la animación no funciona y el collider que es para que el jugador no pase no se vuelve a activar, lo mismo con las booleans 
 
aquí el código 
 

public class dooropen : MonoBehaviour
{
public GameObject collisionobject;
public GameObject DoorAnimator;
private Animator animate;
public void OnTriggerEnter(Collider other)
{
   if (other.tag == "Player")
   {
      animate = DoorAnimator.gameObject.GetComponent<Animator>();
      animate.SetBool ("isOpen", true);
      collisionobject.SetActive (false);
      Debug.Log ("entered");
   }
}
 
public void OntriggerExit(Collider other)
{
   if (other.tag == "Player")
   {
      animate = DoorAnimator.gameObject.GetComponent<Animator>();
      animate.SetBool ("isOpen", false);
      collisionobject.SetActive (true);
      Debug.Log ("exit");
   }
}
}

 
 
#13
General (Antiguo) / como mostrar texto en C# ??
Febrero 28, 2017, 09:13:22 PM
pues eso, he estado intentando mostrar texto cuando la jugadora toque una escultura o al acercarse a un npc o al entrar a una nueva zona,
 
ya c como poner colliders y collider trigger y todo eso, lo único que necesito es saber como hacer aparecer mágicamente el texto :U
 
esto es lo que he hecho, suponiendo que sea algo así claro :V
 

using System.Collections;
using UnityEngine;
using unityEngine.UI;
public class texto : MonoBehaviour {
    
    public string Text
    void OnTriggerEnter (Collider other)
    {
        Text ("que decir?"); //es asi de facil :u? no lo creo 
    }

 
 
#14
amm pues 
 
veran mi personaje camina normalmente y todo eso >.< pero si se sube a lugares de mas del eje Y 0 queda flotando hay hasta que deje de presionar la tecla de caminar podrian decirme como arreglar esto?
 
agregare la script que ya he hecho
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class playermovement : MonoBehaviour { 
    public float speed = 10.0F; //Velocidad de movimiento
    public float rotationSpeed = 100.0F; //Velocidad de rotación
    void Update() {
        transform.Translate(, , Input.GetAxis("Vertical") * speed * Time.deltaTime);
        transform.Rotate(, Input.GetAxis("Horizontal") * rotationSpeed * Time.deltaTime , );
    }
        
}

 
ya c que no es el lugar adecuado para preguntar pero no podía ponerlo en la parte de ayuda 
 
EDITO:
 
lo k quiero es que mi personaje no vuele cada vez que camina :v