Unity如何访问class中的组件
Unity how to access components in a class
我制作了一个角色 class 有很多变量,我很久以前制作了一个角色扮演游戏,其中我有一个方法来装备和取消装备,增加和减少值,非常简单,我会:
public void equip(Gear g){
increaseValues(g.getValue());
//increaseValues..
}
public void unequip(Gear g){
increaseValues(-g.getValue());
//increaseValues..
}
非常基本,我可以在 Unity 中做同样的事情,但问题就出在这里,在 OOP 中我会创建一个 class 具有值和方法,但统一的趋势是创建脚本并添加它们作为另一个 class 的组件,因此我不知道如何访问对象嵌入式组件的信息,我应该传递什么参数?我尝试了 GameObject,但它告诉我我尝试访问的值或方法不存在于此类对象中。
您可以通过GameObject.GetComponent(Type type)
方法访问其他GameObject
的脚本。
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();
}
我制作了一个角色 class 有很多变量,我很久以前制作了一个角色扮演游戏,其中我有一个方法来装备和取消装备,增加和减少值,非常简单,我会:
public void equip(Gear g){
increaseValues(g.getValue());
//increaseValues..
}
public void unequip(Gear g){
increaseValues(-g.getValue());
//increaseValues..
}
非常基本,我可以在 Unity 中做同样的事情,但问题就出在这里,在 OOP 中我会创建一个 class 具有值和方法,但统一的趋势是创建脚本并添加它们作为另一个 class 的组件,因此我不知道如何访问对象嵌入式组件的信息,我应该传递什么参数?我尝试了 GameObject,但它告诉我我尝试访问的值或方法不存在于此类对象中。
您可以通过GameObject.GetComponent(Type type)
方法访问其他GameObject
的脚本。
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();
}