【问题标题】:Getting the Value of a Static GameObject with Different Values获取具有不同值的静态游戏对象的值
【发布时间】:2015-08-30 03:51:02
【问题描述】:

我目前正在 Unity3D 中为我的游戏创建一个任务系统。到目前为止,它有一个有效的任务系统,它看起来像这样:

并且在为该任务杀死特定怪物后,该任务的价值增加:

但是,如果我以其他任务为例:

您可以看到这些值并没有像我在第一个中所做的那样增加,即使条件得到满足。我在这里所做的是,在我的 NPC(非玩家角色)上附加了一个名为 QuestGiver 的脚本,在我的播放器上,我附加了一个名为 QuestTracker 的脚本。在我的 QuestTracker 上,我已将其连接到我的 QuestGiver,以便在任何地方访问它,因为我有很多 NPC。

public static QuestGiver questGiver;

现在,在我的 QuestGiver 上,这是我的代码:

public string mobName;    
    void Update ()
        {
            if (fighter.opponent != null && killQuest)
            {
                if (mobToBeKilled.mobName == mobName && questAccepted)
                {
                    if (mobToBeKilled.isDead() && !mobToBeKilled.isAlive && !questFinish)
                    {
                        currentKillCount++;
                        mobToBeKilled.isAlive = true;

                        if (currentKillCount == maxKillCount)
                        {
                            questFinish = true;
                            log.logText.text = log.InitialValue + questTitle + " quest completed!\n";
                            log.NewValue = log.logText.text;
                        }
                    }
                }
            }
        }

正如你在我的检查器上看到的,我已经在名为 mobName 的字符串上设置了要杀死的怪物的名称,并且我的 QuestTracker 上的静态变量可以通过我的 QuestGiver 上的方法访问:

void OnMouseDown()
{
    QuestTracker.questGiver = this;
}

为了让我访问 mobToBeKilled,我在我的敌人脚本上附加了一个 OnMouseEnter() 函数,它是这样的:

private void OnMouseEnter()
{
    player.GetComponent<Fighter>().opponent = gameObject;
    QuestGiver.mobToBeKilled = this;
}

我可以说这工作正常,例如 Debug.Log(mobToBeKilled.mobName),它输出“Dragon”或“Killer Bee”。但是当我 Debug.Log(mobName) 应该是 NPC 将请求定位的那个时,它会输出 2 个名称,您可以在图像上的控制台中看到这些名称。我可以使用 2 个不同的值访问这个静态对象吗?抱歉发了这么长的帖子,我只是想澄清一下。

【问题讨论】:

    标签: c# unity3d static-members


    【解决方案1】:

    运行Debug.Log() 命令的游戏对象显然不止一个。 此外,mobName 是暴徒本身的名称,这就是为什么它会为每个执行 Debug.Log() 的游戏对象输出不同的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多