我尝试从标记为questgiver
的{{1}}访问名为GameObject
的脚本。但是每当我访问名为Jenny_NPC
的非静态布尔变量时,我都会出错。我浏览并搜索了其他人得到的同样错误,但我似乎无法找到我现在正在经历的完全相同的情况。
iscompleted_questgiver
答案 0 :(得分:0)
您需要创建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 ();
}
答案 1 :(得分:0)
从第
行开始Jennny_Quest.GetComponent<questgiver>();
我推断questgiver
是一个类,而不是一个对象。
所以,当你这样做时:
if(questgiver.iscompleted_questgiver == false)
您想要访问必须为iscompleted_questgiver
的类成员 static
。
该错误存在于questgiver
没有使用iscompleted_questgiver
标记为static
的定义中。
将其设为static
会将对象成员的性质完全改为类成员,并且可能不是您期望或需要的。
准确地回顾你在做什么,因为似乎存在语义(理解)问题。