Jump to content

Trent H

Registrados
  • Content Count

    3
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Trent H

  • Rank
    Recién Llegado

Recent Profile Visitors

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

  1. Hola a todos, Estaba creando un proyecto en 2D dónde el player tiene dos objetos en la escena. Mi idea era que cogiera el primero y para coger el segundo dejara en el sitio de éste el primero y se llevara el nuevo objeto. Para ello tengo dos variables GameObject (currentWeapon para el arma y currentItem para el item del arma). Para coger el primer objeto no hay problema pero al recoger el segundo y dejar el primero instancio el ítem, pero me crea dos objetos en lugar de uno, y si lo vuelvo a instanciar me crea cuatro. No sé si el error en el frame que me instancia dos veces. private void OnTriggerStay2D(Collider2D other) { if (other.tag == "WeaponItem") { Debug.Log("has encontrado un arma"); if (Input.GetKeyDown(KeyCode.Q)) { if (currentItem != null) { Debug.Log("Cambiar arma"); currentWeapon = other.GetComponent<WeaponRecollect>().weaponPrefab; state = PlayerState.WEAPON; Destroy(other.gameObject); Invoke("SetItem",0.5f); Debug.Log("ItemCreado"); StartCoroutine("GetItem"); } else { Debug.Log("Recoger arma"); currentWeapon = other.GetComponent<WeaponRecollect>().weaponPrefab; state = PlayerState.WEAPON; Destroy(other.gameObject); StartCoroutine("GetItem"); } } } } IEnumerator GetItem() { yield return new WaitForSeconds(0.5f); currentItem = currentWeapon.GetComponent<WeaponsControl>().itemPrefab; } public void SetItem() { GameObject newItem = Instantiate(currentItem, transform.position, Quaternion.Euler(0, 0, 0)); //currentItem = null; <- Si dejo esta instrucción, no me duplica la instancia pero me genera un mensaje de error en la consola porque no instancia el objeto de la variable. No sé como decirle que sólo instancie un ítem. Un saludo }
×
×
  • Create New...