由于它的保护等级,我得到了这个错误' ...无法访问。

时间:2014-07-29 15:15:05

标签: c# windows visual-studio-2012 compiler-errors

我已经阅读了一些关于此问题的内容,但我没有得到任何有用的答案,在我的情况下,我在if (!_positioner.GetPosition(ref position, _content, contentSize))行中遇到问题,其中错误表明FloatPositioner.GetPosition(ref ...)无法访问达到其保护水平:

using UnityEngine;


private GUIContent _content;
private FloatPositioner _positioner;

public string Text { get { return _content.text; } set { _content.text = value; } }
public GUIStyle Style {get; set;}

public void OnGUI()
{
    var position = new Vector2();
    var contentSize = Style.CalcSize(_content);
    if (!_positioner.GetPosition(ref position, _content, contentSize)) \\Right Here
    {
        Destroy(gameObject);
        return;
    }


    GUI.Label(new Rect(position.x, position.y, contentSize.x, contentSize.y), _content, Style); 
}

另一方面,我得到这个通知,我必须为FloatPositioner.GetPosition声明一个正文才能正常运行,但我真的不知道那是什么意思。我认为这是造成问题的原因:

using UnityEngine;

public class FloatPositioner : MonoBehaviour
{
    bool GetPosition(ref Vector2 position, GUIContent content, Vector2 size);
}

帮助!

1 个答案:

答案 0 :(得分:2)

当您访问bool GetPosition时,错误是保护级别? 您的课程是公开的,但您尝试拨打的方法不是。

public class FloatPositioner : MonoBehaviour
{
    public bool GetPosition(ref Vector2 position, GUIContent content, Vector2 size);
}