实例化派生自 MonoBehavior 的类
本文关键字:的类 MonoBehavior 派生 实例化 | 更新日期: 2023-09-27 17:56:14
有没有办法实例化派生自MonoBehavior的类,例如下面的示例,而不会收到警告:"您正在尝试使用'new'关键字创建MonoBehavior。 这是不允许的。 MonoBehaviors只能使用AddComponent()添加。 或者,您的脚本可以从 ScriptableObject 继承,或者根本不继承基类"
例:
public class e1506131012test2 : MonoBehaviour
{
Move move = new Move();
//Move move = gameObject.GetComponent<Move>();
void Update()
{
move.Printing();
}
}
public class Move : MonoBehaviour
{
public int number = 5;
public void Printing()
{
print(number);
}
}
有几种方法可以做到这一点,最简单的方法可能是使用AddComponent
,如错误消息所示:
Move move;
void Start()
{
move = gameObject.Addcomponent<Move>();
}
你不能只new
一个派生自MonoBehavior的对象,原因是这些对象必须是GameObject
的组件。因此,每当您创建一个时,您都必须确保以有效的方式添加它。
只是不要从 MonoBehavior 派生它。
public class Move
{
public int number = 5;
public void Printing()
{
print(number);
}
}
如果它真的必须是 MonoBehavior,这意味着您可能将其放在预制件上,在这种情况下,您可以使用 Instantiate()。