Unity如何访问类中的组件

时间:2017-06-10 14:28:38

标签: c# unity3d unity5

我制作了一个包含很多变量的角色类,很久以前我制作了一个RPG,其中我有一个方法来装备齿轮并取消它,添加和减去值,非常简单,我会:

public void equip(Gear g){
    increaseValues(g.getValue());
    //increaseValues..
}

public void unequip(Gear g){
    increaseValues(-g.getValue());
    //increaseValues..
}

非常基本,我可以在Unity中做同样的事情,但问题出现在哪里,在OOP我会用值和方法创建一个类,但统一的趋势是创建脚本并将它们作为组件添加到另一个类,因此我不知道如何访问对象嵌入组件的信息,我在参数中传递了什么?我试过GameObject,但它告诉我,我试图访问的值或方法不存在于这样的对象中。

1 个答案:

答案 0 :(得分:3)

您可以通过GameObject方法访问其他GameObject.GetComponent(Type type)个脚本。

public GameObject myGameObject; //Attach gameobject in Unity Editor
private MyClass myGameObjectClass;

void Start() {
    myGameObjectClass = myGameObject.GetComponent<MyClass>();
    //or you could use this
    //myGameObjectClass = myGameObject.GetComponent(typeof(MyClass)) as MyClass;
    myGameObjectClass.MyProperty = 2;
    myGameObjectClass.MyMethod();
}