更改访问修饰符

Pro*_*tor 3 c# unity-game-engine

我一直用C#编写代码并遇到了一些问题.我一直在关注这个YouTube教程,我有一些错误.在步行状态代码的第七行,它说:

错误CS0507'Stalking State.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;
    }
}
Run Code Online (Sandbox Code Playgroud)

行走州代码:

using UnityEngine;
using System.Collections;

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

E. *_*fat 9

ProcessMotionpublic在基类中声明.您还需要public在派生类中创建它.

代替:

protected override Vector3 ProcessMotion(Vector3 input)
Run Code Online (Sandbox Code Playgroud)

做:

public override Vector3 ProcessMotion(Vector3 input)
Run Code Online (Sandbox Code Playgroud)