首页 文章

实例化一个派生自MonoBehaviour的类

提问于
浏览
1

有没有办法实例化一个派生自MonoBehaviour的类,例如下面的示例而没有收到警告:“您正在尝试使用'new'关键字创建MonoBehaviour . 这是不允许的.MonoBehaviours只能使用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);
    }
}

2 回答

  • 0

    只是不要从MonoBehaviour派生出来 .

    public class Move 
    {
        public int number = 5;
    
        public void Printing()
        {
            print(number);
        }
    }
    

    如果它真的必须是MonoBehaviour,那意味着你可能在预制件上有它,在这种情况下你使用Instantiate() .

  • 0

    有几种方法可以做到这一点,最简单的可能是使用AddComponent,因为错误消息建议:

    Move move;
    void Start()
    {
        move = gameObject.Addcomponent<Move>();
    }
    

    你不能只是一个从MonoBehaviour派生的对象的原因是这样的对象必须是 GameObject 的一个组成部分 . 因此,无论何时创建一个,都必须确保以有效的方式添加它 .

相关问题