Создание визуальной новеллы в Unity 6 (2/10)
Переменные и условия
Если вы знакомы с программированием, то, возможно, подумали, что способ проверки наличия узла похож на 'if-выражения'. Так оно и есть, и это можно использовать для проверки различных условий! Но прежде чем мы это сделаем, давайте поговорим о переменных.
В вашей истории вы можете захотеть отслеживать такие вещи, как имя игрока, очки здоровья, уровни отношений между людьми, очки опыта и т. д. Это можно сделать в ink с помощью переменных. Некоторые из примеров могут выглядеть так:
Переведено с помощью DeepL.com (бесплатная версия)
VAR PlayerName = “John”
VAR ChoseRedPill = false
VAR HealthPoints = 50
Как видите, у нас могут быть различные типы переменных. Это могут быть числа, текст или булевы значения (истина/ложь). Определив переменную, вы можете обращаться к ней в любом месте вашей истории, будь то отображение, обновление или использование для принятия другого решения. Давайте добавим эти переменные в нашу игру.
// Global variables
VAR PlayerName = "John"
VAR ChoseRedPill = false
VAR HealthPoints = 50
-> start_knot
=== start_knot ===
Hello, {PlayerName}! This is the starting knot! // display variable value
Now, we'll go to knot 2!
-> knot_2
=== knot_2 ===
Hello from knot 2!
Time for a personality test.
Red pill or blue pill?
*** Red pill
~ChoseRedPill = true // update variable value
-> red_pill
*** Blue pill
~HealthPoints -= 20 // update variable value
-> blue_pill
=== red_pill ===
My god, how brave!
-> continue_conversation
=== blue_pill
Bold move, my friend
-> continue_conversation
=== continue_conversation
{ HealthPoints < 50: You seem quite weak. I wonder why...}
Alright. You have answered my question.
{ ChoseRedPill:
You chose the red pill. But I'm still not sure I can trust you
}
{not red_pill: -> no_red_pill_comment}
->END
=== no_red_pill_comment ===
You didn't choose the red pill. I'm not sure I can trust you.
-> END
Как видите, чтобы отобразить переменную в тексте, используйте ~VariableName
Чтобы обновить переменную, используйте ~VariableName = [новое значение]. В случае с числами вы можете использовать += или -=, чтобы увеличить или уменьшить значение на определенную величину (например, ~ HealthPoints -= 30).
Чтобы проверить условие с помощью переменных, следуйте той же схеме, что и раньше, { условие : результат }. Например:
Переведено с помощью DeepL.com (бесплатная версия)
{ ChoseRedPill:
You chose the red pill. But I'm still not sure I can trust you
}
Или
{ HealthPoints < 50: You seem quite weak. I wonder why...}
В результате линия будет появляться только тогда, когда значение HealthPoints меньше 50.
Подведение итогов
Вот и все основы! Мы еще многое можем рассказать о Ink, но я уверен, что вы сможете начать писать отличные интерактивные истории или прототипы своих игр, используя только те методы, о которых мы рассказали здесь. Однако если вы хотите узнать больше о магии Ink, ознакомьтесь с официальной документацией. Удивительно, как много вы можете с ней сделать!
В следующий раз мы узнаем, как подключить Ink к нашему проекту Unity.
Счастливого кодинга!