错误 CS0120:访问非静态成员“questgiver.iscompleted_questgiver”需要对象引用
本文关键字:questgiver iscompleted 对象引用 CS0120 访问 静态成员 错误 | 更新日期: 2023-09-27 18:31:19
我正在尝试从标记为Jenny_NPC
的GameObject
访问名为questgiver
的脚本。但是,每当我访问名为 iscompleted_questgiver
的非静态布尔变量时,我都会遇到错误。我已经浏览并搜索了其他人遇到的相同错误,但我似乎找不到我现在遇到的完全相同的情况。
void Show_Quest_Update()
{
GameObject Jennny_Quest = GameObject.FindGameObjectWithTag ("Jenny_NPC");
Jennny_Quest.GetComponent<questgiver>();
Quest_List ();
if(questgiver.iscompleted_questgiver == false)
{
title_index = 0;
infos_index = 0;
npc_index = 0;
}
quest_title = quest [title_index, infos_index];
quest_objectives = quest [title_index, infos_index + 3];
quest_rewards = quest [title_index, infos_index + 4];
quest_target = npc [npc_index];
Panel ();
}
您需要
创建 questgiver
类的实例才能在当前脚本中访问它。
void Show_Quest_Update()
{
GameObject Jennny_Quest = GameObject.FindGameObjectWithTag ("Jenny_NPC");
questgiver myQuestGiver = Jennny_Quest.GetComponent<questgiver>();
Quest_List ();
if(myQuestGiver.iscompleted_questgiver == false)
{
title_index = 0;
infos_index = 0;
npc_index = 0;
}
quest_title = quest [title_index, infos_index];
quest_objectives = quest [title_index, infos_index + 3];
quest_rewards = quest [title_index, infos_index + 4];
quest_target = npc [npc_index];
Panel ();
}
从行
Jennny_Quest.GetComponent<questgiver>();
我推断questgiver
是一个类,而不是一个对象。
因此,当您执行此操作时:
if(questgiver.iscompleted_questgiver == false)
您要访问必须static
的类成员iscompleted_questgiver
。
该错误存在于questgiver
的定义中,没有用static
标记iscompleted_questgiver
。
使其static
将完全将此对象成员的性质更改为类成员,并且可能不是您所期望或需要的。
准确地回顾你正在做什么,因为似乎存在语义(理解)问题。