我已经阅读了一些关于此问题的内容,但我没有得到任何有用的答案,在我的情况下,我在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);
}
帮助!
答案 0 :(得分:2)
当您访问bool GetPosition时,错误是保护级别? 您的课程是公开的,但您尝试拨打的方法不是。
public class FloatPositioner : MonoBehaviour
{
public bool GetPosition(ref Vector2 position, GUIContent content, Vector2 size);
}