我得到了这个错误'…由于它的保护等级,无法进入

本文关键字:保护 于它 错误 | 更新日期: 2023-09-27 18:15:32

我已经读了一点关于这个问题,但我没有得到任何有用的答案,在我的情况下,我得到了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);
}

帮助!

我得到了这个错误'…由于它的保护等级,无法进入

当您访问bool GetPosition时,错误是保护级别?你的类是公共的,但是你要调用的方法不是。

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