ну тогда просто миритесь - это то самое приславутое сглаживание на маках) можете попробовать подобрать менее размывающийся шрифт) ну или купить другой монитор) или эпловский , или еще хорошо работают деловские ультрашарпы)
ну и вот добавлю, что первые пару ссылок можно пооткрывать и почитать.
там и проблема с тем что считает монитор - телефизором (использует другую цветовую схему)
до вывода аля "ну маки так сглаживают и на ретине только смотрится норм"
то есть по сути вы ничего не кешируете (в юните есть как бы встроенное кеширование таких вот штук, но как показывает практика оно и работает не всегда и если работает - то медленнее).
Сохраните ссылку на 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 и не умея ДУМАТЬ (в смысле раскладывать задачу на простые подзадачи, систематизировать, формализировать и в таком духе) - сделать игру.
если будет необходимо сохранить много данных - то смотрите в сторону Json (тем более в последних билдах Unity встроенная библиотечка) и создания (чтения на старте и сохранения изменений) объекта/структуры описывающей все что нужно) список купленного, пройденные миссии, набранные очки. и тд.
вообще тема "как и что сохранить в игре" это на долго) и зависит от защиты, онлаиновости, критичности, переносимости между устроиствами/платформами
вот как раз парочка Int значений , сохраненных в PlayerPrefs - это и есть чуть ли не самый простецкий вариант. (минус что сохранения пропадут при удалении игры в случае Mobile да и подкорректировать их не очень сложно, никакой защиты).
и что там разбираться то. есть "ключ" строка, по которой можно извлечь значение. Inf , float или string.
ну и всякие мелочи мол "это чтение с диска" , чтоб записалось вызовите Save. И тд. прочитали б документацию.
добавил бы еще что GameObject.Find очень "тяжелый" метод и в уроках от юнитовцев везде и всюду по сто раз упоминают пореже его использовать и НИКОГДА на АПДЕЙТЕ.
Кешировать , только кешировать)
а так то - смиритесь((