有没有办法实例化一个派生自MonoBehaviour的类,例如下面的示例而没有收到警告:"您正在尝试使用' new'来创建MonoBehaviour。关键词。这是不允许的。 MonoBehaviours只能使用AddComponent()添加。或者,您的脚本可以继承ScriptableObject,也可以不继承基类#34;
示例:
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);
}
}
答案 0 :(得分:0)
有几种方法可以做到这一点,最简单的可能是使用AddComponent
,因为错误消息表明:
Move move;
void Start()
{
move = gameObject.Addcomponent<Move>();
}
你不能只是new
一个派生自MonoBehaviour的对象的原因是这些对象必须是GameObject
的一个组件。因此,无论何时创建一个,都必须确保以有效的方式添加它。
答案 1 :(得分:0)
不要从MonoBehaviour派生出来。
public class Move
{
public int number = 5;
public void Printing()
{
print(number);
}
}
如果它真的必须是MonoBehaviour,那意味着你可能在预制件上有它,在这种情况下你使用Instantiate()。