ой, да всё в порядке) Арк Тарусов:
вы и вправду если что вот так просто подсказать по мелочи - обращайтесь
Одно удовольствие пробовать подсказать людям, которые готовы пойти почитать и вообще нормально соображают)
лишь чуток добавлю что #if UNITY_ANDROID и подобное зовется директивами. и это не совсем проверка.
не знаю важно или нет или уже прочитали, но это по сути "знак" компилятору - компилировать этот кусок кода или нет).
"if (Application.platform == RuntimePlatform.Android)
в которой явно прописано что данный код работает только если запускается на андроид."
ну а про эту строчку просто забыл) простите) очевидным казалось что неё надо если нужно чтоб везде работало))
и про выход в прошлую сцену.
юнити к сожалению никаких готовых решений не дает, если вы говорите про "запомнить прошлый экран, на который надо вернуться"(по крайней мере ни разу не встречал таких).
только свои список . складываем/удаляем элементы при загрузках/переходах.
Арк Тарусов: еще и сюда в комент повторю, что если вы про quit() то прочитайте справку. а само нажатие клавишь - отслеживается везде и всегда нормально.
ну и не делайте это в void OnGUI(). ОН вызывается куда чаще чем вам надо это нажатие)
void OnGUI() - это для отрисовки интерфеиса и нажатий на интерфеис.
Input принято проверять в Update().
ну с знаете, многовато вы требуете из простого вопроса как сделать кнопку -> как реализовать кучу всего.
Кстати двойной тап на кнопку назад - вызывает сворачивание(выгрузку из памяти) приложений в том же циагене андроидовском.
поэтому если и реализовывать выход, то просто по одиночному нажатию, когда некуда уже назад "отматывать".
и обязательно не забудьте про окошко подтверждения, а то как практика показывает без него - много жалуются.
А по делу - вы уже знаете как отследить одно нажатие.
Вперед , дерзайте.
после первого нажатия отслеживайте второе (таймер там добавить, чтоб два нажатия быстрее чем за N секунд - считается двойным тапом)
ну тогда просто миритесь - это то самое приславутое сглаживание на маках) можете попробовать подобрать менее размывающийся шрифт) ну или купить другой монитор) или эпловский , или еще хорошо работают деловские ультрашарпы)
ну и вот добавлю, что первые пару ссылок можно пооткрывать и почитать.
там и проблема с тем что считает монитор - телефизором (использует другую цветовую схему)
до вывода аля "ну маки так сглаживают и на ретине только смотрится норм"
то есть по сути вы ничего не кешируете (в юните есть как бы встроенное кеширование таких вот штук, но как показывает практика оно и работает не всегда и если работает - то медленнее).
Сохраните ссылку на Transform камеры, тогда по ссылке будете получать сразу значение, а не искать компонент (да и на будущее знание такого рода вещей пригодится)
dobrijzmej3d.blogspot.com/2012/07/ogre3d.html вот еще кстати перевод и там есть чуток про "почему ж таки кватернионы"
по сути ,как уже описал выше, кватернионами проще минпулировать. нет проблем с "границами" аля 360 градусов и всяких как отличить -90 и 270 градусов)
ни разу не встречал сравнение кватернионов по скорости с чем либо.
а информация? простое объяснение что это?
если да, то обычно для начала хватает гугла и поиска "unity кватернион"
одной из первых выдает неплохую статью https://habrahabr.ru/post/183908/
для остального - википедия и юнити форум.
void OnTriggerEnter(Collider bullet)
{
if (bullet.CompareTag("Enemy"))
{
e = true;
Debug.Log("E");
}
}
тут параметр функции Collider bullet - коллайдер. Точнее ссылка на коллайдер. у колайдера, как и у GameObject ( а еще точнее именно от него) есть тэг, слой и прочие атрибуты.
а вот в том проблемном месте
void OnCollisionEnter(Collision bullet)
{
if (bullet.CompareTag("Ring"))
{
r = true;
Debug.Log("R");
}
}
Параметром является информация о коллизии - Collision bullet.
В этой информации есть ссылка на коллайдер, который вызвал коллизию - bullet.collider (В вашем случае эта ссылка на коллайдер, для проверки тегов и прочего как раз и нужна).
А кроме коллайдера, там еще точки коллизий есть и нормаль, и наверно что-то еще не помню))
Надеюсь понятнее стало.
и еще раз повторю про названия)) к примеру кусочек с кодом про коллизию
void OnCollisionEnter(Collision collisionInfo)
{
if (collisionInfo.collider.CompareTag("Ring"))
{
r = true;
Debug.Log("R");
}
}
ну и если придираться, то у вас там глобальная переменная bullet и внутри методов тоже bullet. чтоб не запутаться - назвали бы bulletGO (если что сокращение от GameObject) или как о так.
и вопрос, что это у вас за срань такая что ДЕСЯТЬ объектов - кладут всю сцену на лопатки??
ПРОСТЫЕ ОБЪЕКТЫ? просто кубы с коллайдерами? или на всех физическое тело есть? может на них стандартный тяжеловесный шейдер и тени еще?
а ну ка картинку, какие ж это такие чудесные углы, что можно в 3d всего 6-ю лучами определить любое пересечение. Особенно "шлагбаумы" (тонкие палки много уже самого объекта/игрока).
Делали и 2D платформеры, и 3D физические пазлы, и боевки в космосе.
Все эти "реальная" физика - везде аккуратно и по своему применять просто нужно.
Ну а так то да, на лучах физика была в 2D платформере - это очень дешево по ресурсам. хоть по 20 лучей посылай.
странный вы, при raycast тоже движок физики срабатывает. А в вашем случае)) ха ну пускайте 5 лучей (по краям капсулы 4 и в серединке свой).
А чтоб еще и "башкой" не проходило сквол препятствия при прыжке, еще столько же лучей вверх.
О а еще ж надо упираться в стены и шлагбаумы.
Вы не поверите, но физический движок, как раз и придумали чтоб оптимально это все посчитать. Немного статики и вменяемости с формами - и все прекрасно работает, даже на мобильных девайсах (новее какого нить iphone 3gs)
разберитесь с логикой. Кто "она" возвращает? сохранение очков и сохранение "покупки" вообще мало как связанны должны быть) PlayerPrefs.GetInt возвращает вам сохраненное значение, в случае если его не было то вернет default значение, для int это ноль. после покупки (когда отняли тысячу очков) вы сохранили по ключу "Savee" значение ноль, и снова его считываете, давая возможность повторно купить (отнять тысячу). Поидее при Нуле и ДОСТАТОЧНОМ кол-ве очков - доступна покупка. При покупке сохранить в Savee ЕДИНИЦУ, и при ЕДИНИЦЕ (считанной на старте) игроку доступен контент(корабль, машинка).
И вы уж простите, все же без "давай глянь" а чуть больше на ты.
И если уж на то пошло, какие-то обучающие курсы программирования? структур данных? просто образование "тематическое"? На лицо проблема "понимания чего вообще надобно", потому как вроде не совсем уж бестолково поясняю. (без обид, но посмотрев все ваши вопросы, складывается впечатление что кто-то вам сказал что можно взять Unity и не умея ДУМАТЬ (в смысле раскладывать задачу на простые подзадачи, систематизировать, формализировать и в таком духе) - сделать игру.
вы и вправду если что вот так просто подсказать по мелочи - обращайтесь
Одно удовольствие пробовать подсказать людям, которые готовы пойти почитать и вообще нормально соображают)