Me gustaría tomar valores de WeaponID, etc. de este script:
public class WeaponInfo : MonoBehaviour { public string WeaponName; public float WeaponID; public float Ammo; public float FireRate; public float Damage; }En el script de recogida:
public class Pickup : MonoBehaviour { [SerializeField] private bool pickUpAllowed; // Use this for initialization private void Start() { gameObject.SetActive(true); } // Update is called once per frame private void Update() { if (pickUpAllowed && Input.GetKeyDown(KeyCode.E)) PickUp(); } private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.name.Equals("body")) { gameObject.SetActive(true); pickUpAllowed = true; } } private void OnTriggerExit2D(Collider2D collision) { if (collision.gameObject.name.Equals("body") && Input.GetKeyDown(KeyCode.E)) { gameObject.SetActive(false); pickUpAllowed = false; } } private void PickUp() { Destroy(gameObject); Debug.Log("Player Picked up:"); } }que está unido al mismo objeto Arma. El plan es que quiero hacer que el script WeaponPickup tome información del script WeaponInfo, para poder usarlo cuando mi personaje lo recoja, tomaría la información de cuál es la identificación del arma, etc. Entonces, si el personaje toma un arma con 10 municiones, cambiaría el carácter WeaponID de manos a una pistola con 10 municiones, etc. Pero no tengo idea de cómo hacerlo.
Hay muchas maneras de hacer esto. una forma de guardar código y la más fácil es el método de arrastrar y soltar. primero declaras una variable pública.
public WeaponInfo weaponInfo;y arrastra tu gameObject que tiene el script
entonces puedes usar variables de ese script
weaponInfo.yourVariable;