У меня проблемы с поиском проблемы в моем коде. Когда я возвращаюсь в Unity и нажимаю кнопку play, текстовая игра запускается в сцене «Wake Up», как было указано. Тем не менее, игра не реагирует на нажатие любых клавиш. Сцена никогда не меняется, и она остается в «Пробуждении», если я вручную не перехожу на вкладку sNextHeading и не набираю другое имя сцены. Например, я набираю «Проверить сотканную корзину», и эта сцена загружается. Я знаю, что все мои сцены работают, но они просто не реагируют на нажатия клавиш. Я пересмотрел свои лекции в школе, и они выглядят одинаково. Должно быть, я что-то упускаю из виду и надеюсь, что кто-то может указать мне правильное направление.
Page[] aBook;
public string sPrevHeading;
public string sCurrHeading;
public string sNextHeading = "Wake Up";
void Start()
{
BindBook();
RenderStory();
}
void Update() //Input Keys Don't Work
{
if (Input.GetKeyDown(KeyCode.W))
{
if (sCurrHeading == "Wake Up")
{
sNextHeading = "Check Woven Basket";
}
}
else if (Input.GetKeyDown(KeyCode.D))
{
if (sCurrHeading == "Wake Up")
{
sNextHeading = "Check Door";
}
else if (sCurrHeading == "Pick Up")
{
sNextHeading = "Drink Milk";
}
}
else if (Input.GetKeyDown(KeyCode.B))
{
if (sCurrHeading == "Wake Up")
{
sNextHeading = "Check Bowl";
}
}
else if (Input.GetKeyDown(KeyCode.P))
{
if (sCurrHeading == "Bowl")
{
sNextHeading = "Pick Up";
}
else if (sCurrHeading == "Pick Up")
{
sNextHeading = "Pour Milk";
}
}
else if (Input.GetKeyDown(KeyCode.Y))
{
if (sCurrHeading == "Drink Milk" ||
sCurrHeading == "Pour Milk")
{
sNextHeading = "Wake Up";
}
}
else if (Input.GetKeyDown(KeyCode.N))
{
if (sCurrHeading == "Drink Milk" ||
sCurrHeading == "Pour Milk")
{
sNextHeading = "Thank You";
}
}
RenderStory();
}
void RenderStory()
{
if (!string.IsNullOrEmpty(sNextHeading))
{
for (int nPage = 0; nPage < aBook.Length; nPage++)
{
if (sNextHeading == aBook[nPage].Heading)
{
sCurrHeading = sNextHeading;
sNextHeading = "";
Debug.Log(aBook[nPage].Body);
}
}
}
}
void BindBook()
{
aBook = new Page[]
{
new Page("Wake Up", "(Wake Up)\nCheck the [W]oven Basket, [B]owl, or check the [D]oor?"),
new Page("Check Woven Basket", "(Woven Basket)\n[X] to return to previous step."),
new Page("Check Bowl", "(Check Bowl)\n[P]ick up bowl of mile or [X] to return."),
new Page("Check Door", "(Check Door)\n[X] to return to previous step."),
new Page("Pick Up", "(Pick Up)\n[P]our out the milk, [D]rink the liquid or [X] to return to previous step."),
new Page("Pour Milk", "(Pour Milk)\nWin Play again [Y]es or [N]o?"),
new Page("Drink Milk", "(Drink Milk)\nLose Play again [Y]es or [N]o?"),
new Page("Thank You", "(Thank You)\nThank you for playing!")
};
}
}