Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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# 更改访问修饰符_C#_Unity3d - Fatal编程技术网

C# 更改访问修饰符

C# 更改访问修饰符,c#,unity3d,C#,Unity3d,我一直在用C#编写代码,遇到了一些问题。我一直在跟踪,我有一些错误。在步行状态代码的第七行,它说: 错误CS0507“WalkingState.ProcessMotion(Vector3)”:重写“public”继承成员“BaseState.ProcessMotion(Vector3)”时无法更改访问修饰符 这意味着什么?我如何解决这个问题 基本状态代码: using UnityEngine; using System.Collections; public abstract class Ba

我一直在用C#编写代码,遇到了一些问题。我一直在跟踪,我有一些错误。在步行状态代码的第七行,它说:

错误CS0507“WalkingState.ProcessMotion(Vector3)”:重写“public”继承成员“BaseState.ProcessMotion(Vector3)”时无法更改访问修饰符

这意味着什么?我如何解决这个问题

基本状态代码:

using UnityEngine;
using System.Collections;

public abstract class BaseState : MonoBehaviour
{
    protected BaseMotor motor;

    #region baseState implementation
    public virtual void Construct()
    {
        motor = GetComponent<BaseMotor>();
    }
    public virtual void Destruct ()
    {
        Destroy(this);
    }
    public virtual void Transition ()
    {

    }
    #endregion

    public abstract Vector3 ProcessMotion(Vector3 input);
    public virtual Quaternion ProcessRotation(Vector3 input)
    {
        return transform.rotation;
    }
}
using UnityEngine;
using System.Collections;

public class WalkingState : BaseState
{
    protected override Vector3 ProcessMotion(Vector3 input)
    {
        return input * motor.Speed;
    }
}

ProcessMotion
在基类中声明为
public
。您还需要在派生类中将其设置为公共

而不是:

protected override Vector3 ProcessMotion(Vector3 input)
做:


错误消息非常清楚:基类将方法标记为
public
,但您试图在派生类中将其更改为
protected
。这是不允许的,它在派生类中也必须是public。

当您从基类使用public时,不能使用protected
public override Vector3 ProcessMotion(Vector3 input)