Comments 16
и, после двойного клика, впервые познакомимся с MonoDevelop в рамках этой серии уроков
Неожиданно рад, что в «Блоге компании Microsoft» знакомят со средой разработки MonoDevelop. Ожидал, что в первом уроке первым пунктом будет «Как подключить среду разработки Visual Studio к Unity».
+17
Хорошие туториалы у вас, продолжайте в том же духе.
Для разнообразия к этой главе было бы неплохо добавить какой-либо визуальный эффект при подборе звезды, например анимировать её улетание к квадрату, всего-то снять триггер с коллайдера и проанимировать координаты, а визуально приятнее.
Для разнообразия к этой главе было бы неплохо добавить какой-либо визуальный эффект при подборе звезды, например анимировать её улетание к квадрату, всего-то снять триггер с коллайдера и проанимировать координаты, а визуально приятнее.
0
При «сборе» объектов (в данном случае — звезд) лучше не вызывать Destroy, а деактивировать объект через GameObject.SetActive(false); потому как Destroy() вызывает процесс сборки мусора и на слабых машинах и мобильных устройствах может быть подергивание при работе сборщика, особенно при большом количестве активных объектов в сцене.
Кроме того, логику камеры лучше выполнять в LateUpdate(), т.е. после того, как контроллер о остальные «подвижные» объекты обновили свое положение.
Кроме того, логику камеры лучше выполнять в LateUpdate(), т.е. после того, как контроллер о остальные «подвижные» объекты обновили свое положение.
0
Если просто играетесь с юнити, то ничего страшного)
Если делаете настоящюю игру, то довольно быстро придете к идее пула объектов. Плюсов куча, даже объяснять не буду — все и так разжевано 1000 раз.
Кроме того, функция Destroy() не вызывается мгновенно, а лишь помечает что объект должен быть уничтожен когда-нибудь, когда предоставиться такая возможность так что у него есть все шансы дожить до следующего кадра и скорее всего так и произойдет и он может снова столкнуться с игроком или чем то еще. Тогда мы за одну звезду заработаем 2 очка.
Например у нас сетевая игра и играют 2 персонажа которые почти одновременно подошли к звезде. или мы дергаемся около звезды вправо-влево, так что звезда еще не уничтожилась, а мы успели покинуть пределы коллайдера и снова его пересечь) Вот тут пул тоже здорово поможет
Если делаете настоящюю игру, то довольно быстро придете к идее пула объектов. Плюсов куча, даже объяснять не буду — все и так разжевано 1000 раз.
Кроме того, функция Destroy() не вызывается мгновенно, а лишь помечает что объект должен быть уничтожен когда-нибудь, когда предоставиться такая возможность так что у него есть все шансы дожить до следующего кадра и скорее всего так и произойдет и он может снова столкнуться с игроком или чем то еще. Тогда мы за одну звезду заработаем 2 очка.
Например у нас сетевая игра и играют 2 персонажа которые почти одновременно подошли к звезде. или мы дергаемся около звезды вправо-влево, так что звезда еще не уничтожилась, а мы успели покинуть пределы коллайдера и снова его пересечь) Вот тут пул тоже здорово поможет
0
Если делаете настоящюю игру, то довольно быстро придете к идее пула объектов. Плюсов куча, даже объяснять не буду — все и так разжевано 1000 раз.
Киньте ссылку, чтоли
0
Оу, почему в голосовании не чекбоксы!?
+3
Мне кажется, было бы лучше проверять не по имени GameObject, a по наличию компонента Star, в котором заодно можно завести количество очков, получаемых при сборе этой звезды.
Например, так:
И проверять его наличие так:
Например, так:
class Star: MonoBehaviour
{
public int score = 100;
}
И проверять его наличие так:
var star = col.gameObject.GetComponent<Star>();
if(star != null)
{
score += star.score;
Destroy(star.gameObject);
}
0
Спасибо, отличная статья! Почти все понятно лучше чем в других встреченных мне туториалах.
Непонятно только где должна быть функция отображения гуи? Сама функция простая и понятная, а где она находится — ни слова.
И ещё вопрос, если можно. Мы создали коллайдер, назначили его триггером, поставили на него скрипт с названием dieScript. По логике вещей — это скрипт привязанный именно к этому триггеру. Почему внутри скрипта мы должны ещё раз проверять совпадение имени объекта столкновения? Я бы ещё понял если бы мы там проверяли что наш триггер столкнулся именно с объектом-игроком, а не с каким-то другим. Но получается что все столкновения возможны только с игроком, и мы проверяем что игрок столкнулся именно с этим триггером. Непонятная логика какая-то.
И потом скрипт на звезду — мы создали для объекта звезды свой скрипт? Или мы дописали ещё один иф в dieScript? Если второе — то я вообще не понимаю логики работы скриптов.
Непонятно только где должна быть функция отображения гуи? Сама функция простая и понятная, а где она находится — ни слова.
И ещё вопрос, если можно. Мы создали коллайдер, назначили его триггером, поставили на него скрипт с названием dieScript. По логике вещей — это скрипт привязанный именно к этому триггеру. Почему внутри скрипта мы должны ещё раз проверять совпадение имени объекта столкновения? Я бы ещё понял если бы мы там проверяли что наш триггер столкнулся именно с объектом-игроком, а не с каким-то другим. Но получается что все столкновения возможны только с игроком, и мы проверяем что игрок столкнулся именно с этим триггером. Непонятная логика какая-то.
И потом скрипт на звезду — мы создали для объекта звезды свой скрипт? Или мы дописали ещё один иф в dieScript? Если второе — то я вообще не понимаю логики работы скриптов.
0
Скрипты столкновения, насколько я понял, привязаны к обьекту игрока, а не к триггерам. Поэтому нужна проверка, с чем мы собственнo столкнулись.
0
В гифке добавляется dieScript к dieCollider, но код на проверку с ним же. Исправить: проверять с именем героя или просто скрипт добавить на героя. Это косяк автора статьи, я ему утром написал, но он ещё не ответил.
Со звездой: можно добавить скрипт как для звезды, так и для героя, просто не перепутать кто с кем сталкивается. Но по смыслу кода, OnGUI и код столкновения со звездой должен быть в коде героя. Там же переменная score.
Со звездой: можно добавить скрипт как для звезды, так и для героя, просто не перепутать кто с кем сталкивается. Но по смыслу кода, OnGUI и код столкновения со звездой должен быть в коде героя. Там же переменная score.
+1
Ну где там уже следующая статья? :)
0
Only those users with full accounts are able to leave comments. Log in, please.
Про создание платформера на Unity. Часть вторая, звездная