在Unity的c#脚本中使用两个类
本文关键字:两个 Unity 脚本 | 更新日期: 2023-09-27 18:06:08
我复制了游戏中的关卡1。我想让它的工作方式与第1级相同,只是在前一个基础上做了一个小的添加。一个脚本和一个碰撞器被附加到预制件上,其中碰撞器函数在同一个脚本的两个类中使用。我在脚本中使用两个类。在我的游戏关卡2中,我希望调用第二个类,并希望脚本执行第二个类的碰撞器功能。我怎么叫第2级的二等班?请帮帮我。谢谢你。
public class class1: Monobehaviour {
//public variables declaration
void OnTriggerEnter2d(){}
}
public class class2: Monobehaviour {
//public variables declaration
void OnTriggerEnter2d(){}
}
您可以创建一个接口,并让两个类实现相同的接口。
public interface ITriggerBehaviour
{
void OnTriggerEnter2d();
}
public class class1: Monobehaviour, ITriggerBehaviour
{
//public variables declaration
void OnTriggerEnter2d(){}
}
public class class2: Monobehaviour, ITriggerBehaviour
{
//public variables declaration
void OnTriggerEnter2d(){}
}
然后,在不知道哪个类实现该方法的情况下,以相同的名称调用它。
public void SomeOtherFunction()
{
// In your code, the object will be provided elsewhere, in which case
// you may want to use the 'as' operator to convert the object
// reference to the interface and test for 'null' before using it.
// This example shows that an interface can be used to hold a reference
// to different types of object, providing they both implement the
// same interface.
ITriggerBehaviour someObject;
if(currentLevel == 1)
someObject = new class1();
else
someObject = new class2();
// Call the method via the interface
someObject.OnTriggerEnter2d();
}