Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 脚本需要从MonoBehavior派生,不能获取参数_C#_Unity3d - Fatal编程技术网

C# 脚本需要从MonoBehavior派生,不能获取参数

C# 脚本需要从MonoBehavior派生,不能获取参数,c#,unity3d,C#,Unity3d,我在Unity有一个项目,也是C#的新手。问题是我得到了脚本需要从MonoBehavior派生的错误。我明白这意味着什么,但当我使用MonoBehavior时,我会遇到很多这样的错误: 如果有人能解释我做错了什么,我会很高兴的-谢谢stackoverflow的好人 每个脚本都连接到BaseWindow 名称空间BlGame.View { 公共抽象类基窗口 { 保护变换mRoot protected EScenesType mScenesType; protected stri

我在Unity有一个项目,也是C#的新手。问题是我得到了脚本需要从MonoBehavior派生的错误。我明白这意味着什么,但当我使用MonoBehavior时,我会遇到很多这样的错误:

如果有人能解释我做错了什么,我会很高兴的-谢谢stackoverflow的好人

每个脚本都连接到BaseWindow

名称空间BlGame.View { 公共抽象类基窗口 { 保护变换mRoot

    protected EScenesType mScenesType; 
    protected string mResName;         
    protected bool mResident;          
    protected bool mVisible = false;   



    public abstract void Init();


    public abstract void Realse();


    protected abstract void InitWidget();


    protected abstract void RealseWidget();


    protected abstract void OnAddListener();


    protected abstract void OnRemoveListener();


    public abstract void OnEnable();


    public abstract void OnDisable();


    public virtual void Update(float deltaTime) { }


    public EScenesType GetScenseType()
    {
        return mScenesType;
    }


    public bool IsVisible() { return mVisible;  }


    public bool IsResident() { return mResident; }


    public void Show()
    {
        if (mRoot == null)
        {
            if (Create())
            {
                InitWidget();
            }
        }

        if (mRoot && mRoot.gameObject.activeSelf == false)
        {
            mRoot.gameObject.SetActive(true);

            mVisible = true;

             OnEnable();

            OnAddListener();
        }
    }


    public void Hide()
    {
        if (mRoot && mRoot.gameObject.activeSelf == true)
        {
            OnRemoveListener();
            OnDisable();

            if (mResident)
            {
                mRoot.gameObject.SetActive(false);
            }
            else
            {
                RealseWidget();
                Destroy();
            }
        }

        mVisible = false;
    }

    //预加载
    public void PreLoad()
    {
        if (mRoot == null)
        {
            if (Create())
            {
                InitWidget();
            }
        }
    }

    //延时删除
    public void DelayDestory()
    {
        if (mRoot)
        {
            RealseWidget();
            Destroy();
        }
    }


    private bool Create()
    {
        if (mRoot)
        {
            Debug.LogError("Window Create Error Exist!");
            return false;
        }

        if (mResName == null || mResName == "")
        {
            Debug.LogError("Window Create Error ResName is empty!");
            return false;
        }

        if (GameMethod.GetUiCamera.transform== null)
        {
            Debug.LogError("Window Create Error GetUiCamera is empty! WindowName = " + mResName);
            return false;
        }

        GameObject obj = LoadUiResource.LoadRes(GameMethod.GetUiCamera.transform, mResName);

        if (obj == null)
        {
            Debug.LogError("Window Create Error LoadRes WindowName = " + mResName);
            return false;
        }

        mRoot = obj.transform;

        mRoot.gameObject.SetActive(false);

        return true;
    }

    //销毁窗体
    protected void Destroy()
    {
        if (mRoot)
        {
            LoadUiResource.DestroyLoad(mRoot.gameObject);
            mRoot = null;
        }
    }


    public Transform GetRoot()
    {
        return mRoot;
    }

}
}

大概是这样的:

 public class UIGuideWindow : BaseWindow
{

    public UIGuideWindow()
    {
        //mScenesType = EScenesType.EST_Login;
        //mResName = GameConstDefine.UIGuideRestPath;
        //mResident = false;
    }

Unity Update函数不能有以下任何参数:Update(float deltaTime),这是Unity非真实引擎:)


修复这个,删除浮点DeltTime,而不是使用函数实现本身的< /P>,如果你不张贴任何代码,我们将无法帮助。随意选择任何一个脚本并将其添加。添加脚本到Itf<代码> Update 不做任何事情。你也可以考虑简单地删除它,只在子CLA中实现它。在需要时使用ss