Sanprabhu, нельзя, если под твёрдым ты понимаешь с Rigidbody. Запомни, если у объекта только Collider и нет Rigidbody, то его нельзя двигать, он считается Static и физической системе приходится делать сложные пересчёты. Когда будет срабатывать сообщения с Trigger смотри таблицу внизу http://docs.unity3d.com/Manual/CollidersOverview.html.
Добавлено (16 мая 2016, 20:02) --------------------------------------------- Laush, в документации http://docs.unity3d.com/ScriptReference/Application-absoluteURL.html на JS есть пример, который как раз проверяет на "пиратство", но если ты хочешь только проверку на домен, есть класс Uri. Как узнать доменное имя до 2-ого уровня я не нашёл, но Host возвращает полное доменное имя и можно сравнить окончание строки с помощью String.EndsWith:
Код
using System;
class Program { static void Main() { string[] urls = new string[]{ "https://gcup.ru", "http://game.gcup.ru", "http://gcup.ru/igra", "http://ru.gcup.ru/games", "http://gcup.ru/ru/games/index.html", "http://gcup.com", "http://fakegcup.ru" };
foreach (var url in urls) { var u = new Uri(url); string host = u.Host; if (host == "gcup.ru" || host.EndsWith(".gcup.ru")) { Console.WriteLine("OK : " + u.Host); } else { Console.WriteLine("Failed: " + u.Host); } } } }
Выводит:
Код
OK : gcup.ru OK : game.gcup.ru OK : gcup.ru OK : ru.gcup.ru OK : gcup.ru Failed: gcup.com Failed: fakegcup.ru
UPD: сначала не учёл доменное имя с окончанием на gcup.ru.
Сообщение отредактировал Lertmind - Понедельник, 16 Мая 2016, 20:34
Недостатки/ошибки: * Смещение камеры неудобное, движение игрока вниз происходит вслепую. * Нет кнопки отключения звука, это как минимум жрёт ресурсы. * Надпись Pause на кнопке излишня, и так все знаю что значит две полоски (хе-хе). * Полоски с FR и ZP высокие и поэтому занимают много места. * Уровни однообразные. * После смерти или перехода на следующий уровень, точки обозначающие загрузку крутятся в нижней части экрана. * Нажатие MAIN MENU или REPLAY из PAUSE MENU вешает игру. * В меню проигрыша примерно 5 ошибок в орфографии, а на экране завершения игры - 3. Пусть кто-нибудь проверит ваш английский.
Возможно эта проблема http://stackoverflow.com/questio....rgument. Пишут, что надо не использовать build tools версии 24.0. То есть тебе надо зайти в SDK Manager и удалить Android SDK Build-tools версии 24 и поставить 23.0.3 (последняя не preview версия), скорее всего придётся также поставить Android SDK Platform-tools 23.1 и удалить версии 24.
kot_11_22_, очевидно, что надо использовать алгоритмы поиска пути. Для 3D в Unity из коробки идёт Navigation Mesh, про использование его в 2D есть такой туториал https://www.youtube.com/watch?v=f6TVEvigbd0. Есть всякие ассеты и дополнения с поиском пути, выбор которых зависит от того, какой у тебя мир в игре и как должен двигаться AI.
Добавлено (15 мая 2016, 22:21) --------------------------------------------- Alfe, прокатит только если препятствия имеют выпуклую форму и не стоят близко между собой, иначе бот застрянет.
Сообщение отредактировал Lertmind - Воскресенье, 15 Мая 2016, 22:19
Тебе нужен Rendering Mode -> Fade. Лучше добавить ещё всяких частиц, чтобы не было видно явного перехода.
Добавлено (15 мая 2016, 20:47) --------------------------------------------- Кстати, с трансформерами сравнение немного некорректное, они раскладываются. Например, в игре https://youtu.be/CXmI-JdKTQU?t=486 похоже реализовано через простое раскладывание.
Вообще, анимация через изменения положения отдельных вершин, называется Morph Animation или Blend Shape, в Unity такое поддерживается через Skinned Mesh Renderer и предполагается в первую очередь для анимации персонажей. Это реализуется непросто и тема сложная. Если переход между совсем разными моделями, то будет сложно сделать в 3D-редакторе, тем более импортировать в Unity. У моделей разные материалы, а значит он не может быть единым целым во время трансформации. pushka_, у тебя ссылки на так называемый Dissolve Shader, там нет прозрачности, там походу времени область становится из непрозрачной в прозрачную резко, никаких градацией. Хороший пак шейдеров на эту тему http://kylehalladay.com/all/graphics/2013/09/22/Dissolve-Shaders.html и объяснение работы http://kylehalladay.com/blog....ct.html. Blus, стандартный шейдер поддерживает прозрачность, для простого эффекта тебе надо одну модель уводить в прозрачность, а другую делать видимой, можно с помощью кривых в окне Animation из Unity.
Сообщение отредактировал Lertmind - Воскресенье, 15 Мая 2016, 20:24
Blus, всегда пожалуйста. squire, кстати, заметил у тебя Scale 30, почитай опять же документацию, я не точно понял, но главное, что от размеров объекта зависит обработка физики, то есть большой объект должен вести себя как большой, причём правильный Scale ты должен ставить при импорте.
Blus, плохо читаешь документацию: Установка Mass одного твёрдого тела больше массы другого твёрдого тела не подразумевает того, что при свободном падении оно будет падать быстрее. Используйте для этого Drag. squire, в Unity можно замедлить падение с помощью Drag, оно создаёт сопротивление, но чтобы быстрее падал скорее всего только через приложение силы сверху. Такой вопрос уже был на форуме и я на него отвечал.
Добавлено (15 мая 2016, 19:46) --------------------------------------------- В документации ещё такой совет: Маленькое значение Drag заставляет объект казаться тяжёлым, а большое лёгким. Типичные значения для Drag находятся между .001 (твёрдый блок или метал) и 10 (пёрышко).
Sanprabhu, у GameObject есть переменная tag и метод CompareTag для сравнения, это также есть у Component и всех его наследниках, то есть у Transform, Collider и других. Чтобы сделать как у тебя, сначала надо получить объекты с этими тегами либо через GameObject.FindWithTag или GameObject.FindGameObjectsWithTag, либо сделав проверку:
Код
if (go1.tag == "игрок" && go2.tag == "враг")
Очевидно, в последнем случае предполагается какой-то перебор объектов. Потом уже сравнивать:
Код
if (go1.transform.position == go2.transform.position)
Вообще, числа с плавающей точкой как и векторы нельзя так сравнивать, если только ты не присвоил точно такое же значение. Лучше сравнивать так:
Код
if (Vector3.Distance(go1.transform.position, go2.transform.position) < 0.001f)
Где 0.001f - расстояние между объектами, при котором считается равенство позиций. Или так:
Код
if ((go1.transform.position - go2.transform.position).sqrMagnitude < 0.001f*0.001f)
MANMANA, скрипт работает правильно, насколько я пробовал опускать сферу на plane и цилиндр на plane и сферу одновременно. Конечно, надо снимать коллайдер с объекта на котором скрипт, чтобы не попадать на себя. Z-fighting тоже предсказуем. В чём кривость-то?
beril, WaitForEndOfFrame не нужен там тоже, я не это имел в виду под кадром, а один update. Страницей ранее у него было поле с квадратами и я так понял, что он хочет сразу вставить объект в свободное место, поэтому он смещает ровно на клетку объект и делает Raycast.
beril, в данном случае, ему надо в одном кадре проверить, а не размазывать по кадрам. Если говорить про циклы, бывает, что циклы ограничивают количеством итераций, но только при определённых условиях. Полагаю, у него можно было обойтись структурой данных, типа двумерного массива, тогда придётся написать дополнительный код с синхронизацией и т. п., но зато проверять будет проще и быстрее.
Вокруг персонажа круговая полоска жизни с градацией цвета в зависимости от количества здоровья, как у Neon Chrome. Там также процесс перезарядки и количество патронов отображается у прицела. Не играл, но по видео удобно выглядит, хотя не везде подойдёт. Как говорили выше зависит сильно от сеттинга.
Alfe, качать там, только PhysX SDK это не LAB и APEX, возможность загрузки PhysX SDK появляется после регистрации и нескольких действий. AlexsSyr, не знаю актуально ли, вот инструкция по регистрации http://physxinfo.com/news....nd-apex, возможно у тебя ещё не утверждённый аккаунт.
Sanprabhu, проверил в Unity, как и думал в этом коде нет проблемы, скорее всего где-то что-то ещё происходит. Замечу, что код для IsEmpty() эквивалентен этому:
Добавлено (12 мая 2016, 09:30) --------------------------------------------- Виснуть может, если дочерний объект висит у объекта с этим скриптом, тогда при смещении всё равно срабатывает проверка.
LP, с enum это просто приведение типа, полагаю потому что перечисление может принимать только ограниченное число значений. Кстати, в этом коде нет смысла: