CPU3D.comСпецэффекты3D в играх → Unity3D Как сделать систему Score

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