Вопрос-[ответ] по Unity
| |
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
drcrack | Дата: Пятница, 01 Марта 2019, 07:10 | Сообщение # 8721 |
старожил
Сейчас нет на сайте
| Physics2D.Raycast принимает начальную позицию и направление Debug.DrawLine принимает начальную и конечную позиции ты же передаешь в них одни и те же вектора и удивляешься что оно не туда линию рисует попробуй подсказки в IDE почитать когда аргументы вбиваешь прежде чем искать баги в юнити
Цитата Магия была нужна, так как обычным методом, как у всех, не работало. что у тебя не работало? без this свойство не читалось? или неявный каст не работал? тебе кроме багов юнити еще и баги c# мешают жить теперь?
Цитата и еще одна тема, проблема с рейкастом так же на официальном форуме. у него маска 11 вместо 1 << 11 но дело конечно в багах юнити
Цитата if (hitToBite != null){ эта проверка не имеет смысла, оно никогда не будет null, даже если рейкаст ничего не заденет (проверять нужно hitToBite.collider != null)
кроме того ее надо сделать локальной переменной чтобы не засорять область видимости + чтобы оно было на стеке, для производительности
Сообщение отредактировал drcrack - Пятница, 01 Марта 2019, 07:28 |
|
| |
ДанилаСтержнев | Дата: Пятница, 01 Марта 2019, 17:13 | Сообщение # 8722 |
постоянный участник
Сейчас нет на сайте
| Народ, помогите, пожалуйста. На уровне существует несколько одинаковых объектов, допустим 6. Им нужно раздать значения переменной из списка (т.е. заранее заданных). Например, список: картошка, морковь, помидор, яблоко, арбуз, чеснок. Но таким образом, чтобы все значения были розданы и не было объектов с одинаковым значением. Подскажите, пожалуйста, если не код, то хотя бы логику такой механики для написания кода. Можно также спавнить эти объекты, задавая попутно значения
Красочная сюжетно ориентированная игра-головоломка
|
|
| |
drcrack | Дата: Пятница, 01 Марта 2019, 18:18 | Сообщение # 8723 |
старожил
Сейчас нет на сайте
| Код public static T PullRandom<T>(this List<T> list) {
if (list.Count == 0) return default(T);
var index = UnityEngine.Random.Range(0, list.Count); var result = list[index];
list.RemoveAt(index);
return result; }
^ вытаскивает из списка случайное значение т.е. ты используешь как-то так:
Код list.Add("картошка"); list.Add("помидор"); // ... gameObject1.tag = list.PullRandom(); gameObject2.tag = list.PullRandom();
Сообщение отредактировал drcrack - Пятница, 01 Марта 2019, 18:19 |
|
| |
web_sstas | Дата: Пятница, 01 Марта 2019, 18:30 | Сообщение # 8724 |
частый гость
Сейчас нет на сайте
| drcrack, опередил меня с моим говнокодом), что, кстати возвращает return default(T)? Null или структуру какую-то?
|
|
| |
drcrack | Дата: Пятница, 01 Марта 2019, 18:38 | Сообщение # 8725 |
старожил
Сейчас нет на сайте
| зависит от типа если reference тип то null если например int то 0 и тд
|
|
| |
ДанилаСтержнев | Дата: Пятница, 01 Марта 2019, 20:50 | Сообщение # 8726 |
постоянный участник
Сейчас нет на сайте
| drcrack, если вас не затруднит, можно комментарии к каждой строчке? А то, я гуманитарий)
Красочная сюжетно ориентированная игра-головоломка
|
|
| |
Yanfire | Дата: Пятница, 01 Марта 2019, 23:11 | Сообщение # 8727 |
был не раз
Сейчас нет на сайте
| Ух, атаманы-молодцы, беда! Начну пожалуй: Скачал я с просторов интернета, известный ассет(CETO OCEAN SYSTEM), для работы с водой. Так вот и так как ассет уже немолодой, а его поддержка автором прекратилась, то Юнити его уже не переваривает, а именно, выдает ошибки в скриптах при импорте пакета в проект. Они связаны с устаревшим API скриптов. Обновление API скриптов не дало никаких результатов, мне выдалось сообщение: [img]https:///docs.unity3d.com/ru/530/uploads/Main/APIUpdaterOtherErrors.png[/img] “Some scripts have compilation errors which may prevent obsolete API usages to get updated. Obsolete API updating will continue automatically after these errors get fixed.” То бишь на русском:"Некоторые скрипты имеют ошибки компиляции, которые могут препятствовать обновлению устаревших API. Обновление устаревших API будет продолжаться автоматически после исправления этих ошибок.” Всего ошибок в консоли 187, но разновидности лишь 2: CS0117 и CS1061(2-я преобладает многократно).
Кто знает как бороться сей напастью, слезно прошу ответить!
Сообщение отредактировал Yanfire - Суббота, 02 Марта 2019, 23:44 |
|
| |
drcrack | Дата: Суббота, 02 Марта 2019, 08:00 | Сообщение # 8728 |
старожил
Сейчас нет на сайте
| Цитата drcrack, если вас не затруднит, можно комментарии к каждой строчке? А то, я гуманитарий) чето лень. какие именно строчки непонятны?)
Цитата Кто знает как бороться сей напастью, слезно прошу ответить! для начала скопировать все 187 ошибок, залить на pastebin.com и тут оставить ссылку
|
|
| |
mmmaks | Дата: Суббота, 02 Марта 2019, 12:44 | Сообщение # 8729 |
был не раз
Сейчас нет на сайте
| Народ, здравствуйте! Помогите начинающему создателю игр.
Хочу сделать игру для Android - аркада, внешне напоминающая Бонус уровень из игры Соник, как на картинке (при желании можно глянуть "Sonic Bonus Level - YouTube").
Игр раньше не делал, но туториалы разные изучал, правдо давно это было. Пара вопросов: 1. Что лучше для такой игры 2D или 3D? Камера будет стационарной. Двигаться будет земля и объекты. В принцепе игра явно 3D, но реализовать можно и в 2D, если будет значительное преимущество в производительности.
2. Какой версией Unity лучше пользоваться ? Какаю стабильнйю версию посоветуете? Просто скачал последнюю версию Unity (2018.3.6), но старые проекты после конвертации не работают (в принцепе не большая потеря). Еще из Asset Store я так понял тоже не все работает.
|
|
| |
ДанилаСтержнев | Дата: Суббота, 02 Марта 2019, 17:34 | Сообщение # 8730 |
постоянный участник
Сейчас нет на сайте
| Цитата drcrack ( ) чето лень. какие именно строчки непонятны?) Добавление элементов списка просто для его формирования использовать?
Красочная сюжетно ориентированная игра-головоломка
|
|
| |
drcrack | Дата: Суббота, 02 Марта 2019, 17:38 | Сообщение # 8731 |
старожил
Сейчас нет на сайте
| да, это пример
|
|
| |
ДанилаСтержнев | Дата: Воскресенье, 03 Марта 2019, 21:12 | Сообщение # 8732 |
постоянный участник
Сейчас нет на сайте
| Как найти ближайший экземпляр объекта? Вот так
Код Transform GetClosestEnemy(Transform[] enemies) { Transform tMin = null; float minDist = Mathf.Infinity; Vector3 currentPos = transform.position; foreach (Transform t in enemies) { float dist = Vector3.Distance(t.position, currentPos); if (dist < minDist) { tMin = t; minDist = dist; } } return tMin; } Добавлено (06 Марта 2019, 13:56) --------------------------------------------- Народ, подскажите. Если объект становится дочкой другого, будет ли работать проверка столкновения по его имени или тегу?
Красочная сюжетно ориентированная игра-головоломка
Сообщение отредактировал ДанилаСтержнев - Понедельник, 04 Марта 2019, 15:37 |
|
| |
drcrack | Дата: Среда, 06 Марта 2019, 14:37 | Сообщение # 8733 |
старожил
Сейчас нет на сайте
| Цитата Как найти ближайший экземпляр объекта? Вот так если это происходит часто и обьектов много, то для оптимизации под мобилки, можно использовать квадрат расстояния:
Код // float dist = Vector3.Distance(t.position, currentPos); float dist = (t.position - currentPos).sqrMagnitude;
а если дело происходит на плоскости, то можно вообще исключить одну координату (предположим что это 2д вид сбоку, т.е. нету Z):
Код float dist = t.position.x * currentPos.x +t.position.y * currentPos.y;
ну это мелочи канеш, прост мне делать нех
Цитата Народ, подскажите. Если объект становится дочкой другого, будет ли работать проверка столкновения по его имени или тегу? так, а что именно значит "проверка столкновения по его имени или тегу"?
|
|
| |
ДанилаСтержнев | Дата: Среда, 06 Марта 2019, 19:38 | Сообщение # 8734 |
постоянный участник
Сейчас нет на сайте
| Цитата drcrack ( ) так, а что именно значит "проверка столкновения по его имени или тегу"? Будет ли зафиксировано столкновение или сработает ли триггер
Есть код
Код void OnTriggerEnter (Collider col) { if (col.gameObject.tag == "Picture") {
Debug.Log ("slotNumber"); } } Вроде бы стандартный. На этом объекте есть коллайдр с включеным триггером, на другом объекте есть ригидбоди и коллайдр. Все должно работать, но не работает. Мне нужно срабатывание, если второй объект является дочерним, но не работает даже если он сам по себе
Красочная сюжетно ориентированная игра-головоломка
Сообщение отредактировал ДанилаСтержнев - Среда, 06 Марта 2019, 19:40 |
|
| |
drcrack | Дата: Среда, 06 Марта 2019, 20:41 | Сообщение # 8735 |
старожил
Сейчас нет на сайте
| Попробуй без if ты может просто не тот обьект проверяешь
|
|
| |
ДанилаСтержнев | Дата: Воскресенье, 10 Марта 2019, 18:15 | Сообщение # 8736 |
постоянный участник
Сейчас нет на сайте
| Насколько затратен по производительности процесс спавна экземпляров объекта? Есть ли случаи, когда от него стоит отказаться в пользу другого метода?
Красочная сюжетно ориентированная игра-головоломка
|
|
| |
drcrack | Дата: Воскресенье, 10 Марта 2019, 18:50 | Сообщение # 8737 |
старожил
Сейчас нет на сайте
| затратен если спаунишь много и часто, используй пулинг если спаунишь ОЧЕНЬ много подумай о том чтобы рендерить это все без создания обьектов (т.е. через Graphics.Draw*, CommandBuffers или вообще на GPU)
|
|
| |
ДанилаСтержнев | Дата: Воскресенье, 10 Марта 2019, 19:07 | Сообщение # 8738 |
постоянный участник
Сейчас нет на сайте
| Если я спавню 10 экземпляров раз в минуту, стоит ли на этом сэкономить?
Красочная сюжетно ориентированная игра-головоломка
Сообщение отредактировал ДанилаСтержнев - Воскресенье, 10 Марта 2019, 19:14 |
|
| |
drcrack | Дата: Воскресенье, 10 Марта 2019, 19:19 | Сообщение # 8739 |
старожил
Сейчас нет на сайте
| если ничего не тормозит то забей
|
|
| |
tseries | Дата: Четверг, 28 Марта 2019, 10:45 | Сообщение # 8740 |
уже был
Сейчас нет на сайте
| Приветствую всех. Мой вопрос заключается в следующем: необходимо сделать движение игрока с мячом примерно как на данной гиф. Создана модель игрока, настроен рэгдол, есть мяч с определенной массой, записана и импортирована похожая анимация. Каким образом можно добиться синхронизации между анимацией и мячом? Сначала я подумал, что есть два возможных варианта: 1) Пытаться работать через реальную коллизию колайдера ноги и мяча либо 2)Химичить с IsKinematiс или перемещать между слоями чтобы временно отключать взаимодействия физики и искусственно передвигать мяч, что уже кажется не очень хорошим ходом. В первом случае не вижу каким образом в принципе можно контролировать силу попадания по мячу, а во втором не очень понятно как подгонять мяч под саму анимацию. Из этой же области вопрос реализации чеканки мяча, но уже более явно (в конце гифки). Возможно есть какой-то логичный способ контролировать взаимодействие мяча и игрока? Задача казалось бы базовая, но с моим не самым большим опытом, видимо, упускаю что-то важное. Сейчас мне хотя бы понять направление в котором следует копать дальше.
Гиф, о которой идет речь http://rgho.st/7xwDy2p4M
Сообщение отредактировал tseries - Четверг, 28 Марта 2019, 10:48 |
|
| |
|