Unity3D Как сделать систему Score
Здравствуйте уважаемые. В этом уроке мы будем рассматривать реализацию очков в Unity. Ну, давайте приступим.
Для начала мы создадим скрип C# "Score". Мы объявим в нём переменную:
Code
public int Score;
Это будет сама переменная очков. Мы делаем её целым числом (int). Теперь давайте выводить её на экран. Мы рассмотрим метод OnGUI().
Создаём его в скрипте:
Code
void OnGUI(){
}
В этом методе рассматривается весь GUI. Давайте добавим текст с обозначением очков. Это делается так:
Code
GUI.Label(new Rect(10, 10, 100, 100), "Score: " Score);
Рассмотрим, что мы сделали. Мы создали лейбел. То бишь текст. Мы указали Rect. Я привык делать его отдельной переменной, например "public Rect variable;".
Но тут особо настраивать не нужно. Мы поместим кол-во очков в верхний левый угол.
Давайте теперь повесим этот скрипт наш на игрока.
Теперь давайте сделаем объект, при столкновении с которым у нас будут пополняться очки.
Перед этим не забудем игроку дать имя "Player". Так как мы будем его по нему искать.
Создадим скрипт "AddScore". В нём создаём переменную игрока.
Code
public GameObject Player;
Теперь давайте в методе старта найдём нашего игрока по имени:
Code
void Start(){
Player = GameObject.Find("Player");
}
Теперь сделаем так, чтобы при столкновении с объектом, на котором висит этот скрипт у игрока повышались очки. Для этого мы будем использовать "void OnCollisionEnter(Collision variable)". И проверим коллизию с игроком.
Code
void OnCollisionEnter(Collision variable){
if(variable.gameObject == Player){
Player.GetComponent<Score>().Score += 10;
Destroy(gameObject);
}
}
Мы сделали при столкновении с объектом прибавление очков на 10 и уничтожаем этот объект.
Теперь вешаем этот скрипт на, допустим, простую сферу и тестируем. Всё должно работать!
Спасибо за внимание.
Источник: http://gcup.ru