从C#中的另一个脚本更改对象var



我在尝试从另一个脚本更改对象var时遇到了问题。我有在脚本A:

public class weapon : MonoBehaviour {
public weapon weaponOn;
private string Name;
private float Damages;
private float FireRate;
public weapon(string name, float damages, float fireRate) {
    this.Name = name;
    this.Damages = damages;
    this.FireRate = fireRate;
}
void Start () {
    weapon weaponOn = new weapon ("Rien", 0, 0);
    Debug.Log (weaponOn.Name);

我正试图在脚本B中更改"武器"的名称,比如:

public class buyWeapon : MonoBehaviour {
public static weapon weaponn;
void Start () {
    weaponn = gameObject.GetComponent<weapon> ().weaponOn;
        }
void Update () {
    if (Input.GetKeyDown (KeyCode.F)) {
        weaponn.Name = "New Name"; //Doesn"t contain a definition for Name
        }
    }
}

如果这对你来说很容易,我很抱歉,但我迷失在"static"var"public/private"之类的东西中,我是C#的新手,所以请帮忙。提前感谢:D

Name就是private。使其成为public:

public string Name;