Результаты поиска
| |
alexsilent | Дата: Четверг, 20 Сентября 2018, 13:27 | Сообщение # 221 | Тема: Rigidbody движется не плавно, а рывками, как делать движение |
почти ветеран
Сейчас нет на сайте
| Цитата pixeye (  ) рассинхрон между камерой и героем pixeye, точно, это одна из самых главных причин, тряска ужасная) Спасибо большое за столь подробный ответ, очень полезная информация!
Сообщение отредактировал alexsilent - Четверг, 20 Сентября 2018, 13:28 |
|
| |
alexsilent | Дата: Среда, 19 Сентября 2018, 17:59 | Сообщение # 222 | Тема: Rigidbody движется не плавно, а рывками, как делать движение |
почти ветеран
Сейчас нет на сайте
| Цитата drcrack (  ) Вообще FixedUpdate на самом деле может вызываться несколько раз подряд перед Update а вот это интересно, надо погуглить
|
|
| |
alexsilent | Дата: Среда, 19 Сентября 2018, 17:43 | Сообщение # 223 | Тема: Rigidbody движется не плавно, а рывками, как делать движение |
почти ветеран
Сейчас нет на сайте
| Цитата ZFly (  ) а как вы двигаете Rigidbody? Через физику с помощью AddForce в FixedUpdate? в FixedUpdate и через rigidbody.velocity
Код rigid.velocity = new Vector3(5,0,0);
пробовал просто запустить через AddForce и только на старте, но рывки всё равно есть, как будто сам Rigidbody перемещает весь объект рывками (при замедлении времени это особенно заметно, но всё равно глаза режет, когда и работает с обычной юнити скоростью в 50 раз в секунду, FixedUpdate)
Плавные перемещения происходят только тогда, когда работаешь без rigidbody с перемещениями transform, но так нельзя расчитать коллизию со стенами.
Сообщение отредактировал alexsilent - Среда, 19 Сентября 2018, 17:55 |
|
| |
alexsilent | Дата: Воскресенье, 26 Августа 2018, 15:36 | Сообщение # 224 | Тема: SceneManager можно ли загрузить уровень как unity префаб |
почти ветеран
Сейчас нет на сайте
| Решил использовать такой метод: внутрь уровня добавляю старых 10-20 уровней, превращая их в псевдокомнаты, распределив по районам/областям. получается теперь общее количество уровней сократится с 2000-5000 на 250-500, что уже само по себе неплохо
|
|
| |
alexsilent | Дата: Суббота, 25 Августа 2018, 16:20 | Сообщение # 225 | Тема: Доступ ко всем Behaviour одного типа на уровне |
почти ветеран
Сейчас нет на сайте
| Нужен доступ ко всем Behaviour одного типа на уровне, ведётся ли в самом юнити такой список?
Например если скрипт называется MyScript, можно ли как-то узнать количество всех скриптов на уровне написав что-то типа хотя кончено это не массив, а было бы прикольно)
Также второй случай когда это нужно, если я захочу всем скриптам на уровне отправить какую-то срочную команду.
Пока что я сделал свой велосипед: создаю внутри скрипта переменную глобального динамического массива, где записываю все скрипты, которые были созданы при Awake и удаляю при OnDestroy, либо второй способ ищу все объекты GameObject и просматриваю на существующий скрипт через GetComponent.
Но вдруг в юнити уже сразу ведётся такая подобная вещь, а я просто не знал.
Сообщение отредактировал alexsilent - Суббота, 25 Августа 2018, 16:24 |
|
| |
alexsilent | Дата: Вторник, 21 Августа 2018, 04:19 | Сообщение # 226 | Тема: Unity 3D. Основы скриптинга на C#. Часть 1. |
почти ветеран
Сейчас нет на сайте
| интересно зачем все пишут
когда короче будет:
PS просто интересна разница, хотя конечно я сам всегда предпочитаю короткие выражения, чем меньше символов, тем лучше, специально в юнити написал свой скрипт, где использую только короткий код, а то в юнити бывают жутко длинные выражения типа Код SendMessage("MessageFunction",null,SendMessageOptions.DontRequireReceiver); причём некоторые умудряются писать вот так, хотя и без того немало символов:
Код gameObject.SendMessage("MessageFunction",null,SendMessageOptions.DontRequireReceiver);
а в самодельном коде для скриптинга уровней внутри юнити у меня это выглядит так:
Код message MessageFunction
Сообщение отредактировал alexsilent - Вторник, 21 Августа 2018, 04:34 |
|
| |
alexsilent | Дата: Пятница, 17 Августа 2018, 08:11 | Сообщение # 227 | Тема: SceneManager можно ли загрузить уровень как unity префаб |
почти ветеран
Сейчас нет на сайте
| >>nested prefabs vados4266, первый раз слышу, щас загуглю, Спасибо! Если там внутри другие префабы не обнуляются, то это вообще то что нужно!Добавлено (17 Августа 2018, 08:13) --------------------------------------------- Жаль это дополнительный плагин за 45$.  Хотя погуглю про него поболее, может быть оно стоит своих денег, хотя если вдруг однажды прекратят поддержку, то это не прикольно, хочется чтобы это было внутри юнити официально.
|
|
| |
alexsilent | Дата: Пятница, 17 Августа 2018, 08:00 | Сообщение # 228 | Тема: Rigidbody движется не плавно, а рывками, как делать движение |
почти ветеран
Сейчас нет на сайте
| Rigidbody движется не плавно, а рывками, если замедлить скорость, хотя бы на 50% Timescale = .5; хоть у меня не будет замедление времени, но даже при 100% скорости эти рывки видны местами, если присмотреться, как делать плавное движение персонажа при таком раскладе?
PS Я в данный момент использую Rigidbody2D для 2д своей игры, но и 3дшная версия тоже движется рывками.
Сообщение отредактировал alexsilent - Пятница, 17 Августа 2018, 08:54 |
|
| |
alexsilent | Дата: Четверг, 16 Августа 2018, 09:40 | Сообщение # 229 | Тема: SceneManager можно ли загрузить уровень как unity префаб |
почти ветеран
Сейчас нет на сайте
| Очень тяжело в меню BuildSetting всегда проставлять уровни, и они все хаотично там раскиданы, невозможно в таком меню сделать нормальный порядок, иногда забываешь какой уровень туда закинул, чтобы он загружался, а какой нет.
И решил покопаться в новом SceneManager, но не нашёл можно ли тут загружать уровень как объект/префаб, а не по номерам или названиям? Хочется чтобы уровень загружался также как и любой префаб, то есть просто перетащить уровень "MyLevel.unity" в свой скрипт и чтобы он открывался оттуда, без параллельного добавления этого уровня в BuildSetting меню, потому-что у меня очень много уровней, не 100, а около 2500-5000 будет в финальной версии, и в этом случае я определённо запутаюсь.
Добавлено (16 Августа 2018, 09:56) --------------------------------------------- Я хотел избавиться от уровней и загружать только префабы вообще вместо уровней, было бы удобней, НО тогда другая проблема возникает: Внутри этого уровня-префаба есть другие префабы, и эти префабы не связаны со своими первоначальными префабами.
Допустим сделал я префаб кустик, и если зачайлдить этот кустик к префабу-уровню, то если я вдруг потом захочу перенастроить куст, мне придётся отдельно открывать все 2000 или более уровней и перенастраивать там везде кусты, и это был бы ад.
Сообщение отредактировал alexsilent - Четверг, 16 Августа 2018, 10:17 |
|
| |
alexsilent | Дата: Воскресенье, 12 Августа 2018, 11:34 | Сообщение # 230 | Тема: Насколько медленнее GetComponent от gameObject.tag |
почти ветеран
Сейчас нет на сайте
| pixeye, спасибо! Тогда не так всё и плохо, у меня не стратегия на овер 1000 юнитов, но юнитов 100 на 100 планирую устраивать сражения (и это не стратегия, а просто средней массовости побоища, максимум на 200 юнитов на карте), попробую потестировать.
А словаря я боюсь, я не знаю как он работает, мне всё время кажется, что с такими вещами может быть происходить либо утечка либо ещё какая-то трабла, или когда словарь накопит под 3000 слотов, начнёт тормозить. Это скорее доисторическая боязнь неизвестности
Сообщение отредактировал alexsilent - Воскресенье, 12 Августа 2018, 11:39 |
|
| |
alexsilent | Дата: Суббота, 11 Августа 2018, 06:35 | Сообщение # 231 | Тема: Насколько медленнее GetComponent от gameObject.tag |
почти ветеран
Сейчас нет на сайте
| Хочу создать свою систему тэгов с помощью GetComponent, и задумался насколько эта функция медленная, стоит ли её использовать для таких целей?
То есть не будет ли затратно каждый кадр проверять у всех столкнувшихся объектов на GetComponent?
Сообщение отредактировал alexsilent - Суббота, 11 Августа 2018, 06:46 |
|
| |
alexsilent | Дата: Четверг, 09 Августа 2018, 09:40 | Сообщение # 232 | Тема: Ещё 4 вопроса про геймпады |
почти ветеран
Сейчас нет на сайте
| 1) На геймпаде XBox есть дополнительные кнопки В виде двух квадратов и текста (в середине), эти кнопки используются для игр? И как часто используются они в играх? или они для листания браузера и других системных штук? Я не знаю, ибо не пользовался консолями со времён PS1, также на PS4 кнопки Options и Share, они используются в играх? и как часто? Эти обе кнопки вместо Select Start с NES/SNES или у них другое предназначение?
2) Отличается ли раскладка кнопок PS4 от PS3, PS2, PS1 геймпада в программировании юнити для PC? Особенно волнует главные кнопки типа Квадрат,О,Х, треугольник и R1 L1 R2 L2
3) отличается ли раскладка кнопок PS4 геймпада для PS4 от PS4 геймпада для PC? И тот же самый вопрос про XBox геймпад
4) я запутался какая раскладка кнопок правильная для PS4 и XBox джойстиков для PC, потому-что часто информация отличается на картинках, когда гуглю в сети, и понять где верная инфа не имеет возможности, если ли где точная информация для этих геймпадов?
PS единственный вариант купить и тестировать, но сейчас я летом живу в мухосранске и далеко ехать до ближайшего PC магазина города,чтобы тестировать в живую (было бы проще понять наверное, накупив все варианты джойстиков и потестив)
Сообщение отредактировал alexsilent - Четверг, 09 Августа 2018, 09:49 |
|
| |
alexsilent | Дата: Среда, 08 Августа 2018, 14:14 | Сообщение # 233 | Тема: Как изменить нажатие оси джойстика |
почти ветеран
Сейчас нет на сайте
| Спасибо, посмотрю, кажется тут без плагинов никак не вырулить.
|
|
| |
alexsilent | Дата: Понедельник, 06 Августа 2018, 11:08 | Сообщение # 234 | Тема: Почему юнити не поддерживает все джойстики |
почти ветеран
Сейчас нет на сайте
| Почему юнити не поддерживает все джойстики?
1) У меня есть джойстик без стиков, так вот на нём когда запускаешь в редакторе криво работает Y ось, точнее она всё время идёт вверх. 2) Если же запускать в скомпилированном проекте, то ось Y не работает, зато если в конфигурации проставить 4-ую ось, то джойстик будет адекватно работать, НО в редакторе 4-я ось не спасает, и просто ничего не работает
я так понял это для старых игр и например в Construct нет проблем с этим джойстиком, также например в GTA San Andreas и других старых играх тоже нет проблем, если мне будут предъявлять претензии, что с таким джойстиком не работает игра, я даже не знаю что писать, может быть типа: "Обращайтесь к Unity я тут ни причём" , но это будет звучать тупо ((
Сообщение отредактировал alexsilent - Понедельник, 06 Августа 2018, 11:10 |
|
| |
alexsilent | Дата: Понедельник, 06 Августа 2018, 10:06 | Сообщение # 235 | Тема: Как изменить нажатие оси джойстика |
почти ветеран
Сейчас нет на сайте
| Я пытаюсь сделать изменение управление кнопок внутри игры.
Для любых кнопок я смогу сделать изменение управление внутри игры, но изменение управление осей джойстика я не понимаю как изменить, их нельзя прослушать в KeyCode, и как их менять не используя ужасный интерфейс стартового экрана юнити?
(или может поставить запрет на изменение осей джойстика? а менять их через стартовое меню, но это кажется будет выглядеть очень тупо)
Есть у кого-нибудь мысли на этот счёт?Добавлено (07 Августа 2018, 09:45) --------------------------------------------- Неужели нет способа отследить какая ось на джойстике нажата в текущий момент, не проставляя кнопки в InputManager меню? Добавлено (08 Августа 2018, 08:23) --------------------------------------------- пришлось выносить конфигурацию движения джойстика во внешнее меню открытия игры (стандартное юнити), а остальные кнопки конфигурировать внутри игры. Но это выглядит тупо, как пятое колесо(

Сообщение отредактировал alexsilent - Понедельник, 06 Августа 2018, 10:34 |
|
| |
alexsilent | Дата: Четверг, 02 Августа 2018, 03:22 | Сообщение # 236 | Тема: связь 3х скриптов |
почти ветеран
Сейчас нет на сайте
| Я для возвращения данных после SendMessage использую старые добрые Static переменные. То есть у меня, есть: 1) статические переменные: Сколько урона, Кто ударил, и другие данные
Код static var MinusHealth : float; // (у меня тут на ЯваСкрипте, но думаю всё понятно и так) static var CurrentTransform : Transform; // трансформ объекта , который атаковал, ну и можно кучу другого взять это была инициализация, например в скрипте Global, а потом мы обращаемся к ним
Код Global.MinusHealth = 10; Global.CurrentTransform = transform;
2) дальше по коду SendMessage объявляет урон какому-то там объекту, и если нужно будет вернуть какие-то данные, то тоже отправляем через статические переменные, главное правило - не проверять два параллельных выстрела, а проверять последовательно, то есть за одну ходку всё проверить, иначе такая моя простая система не будет работать, и нужно мозгами пораскидывать, например вообще отказаться от SendMessage и заменить на GetComponent
Добавлено (02 Августа 2018, 03:25) --------------------------------------------- мой код выглядит примерно так на ЮнитиСкрипт, лень переделывать в Сишарп, ибо я пока очень слабо его знаю:
Код function OnTriggerStay2D(other : Collider2D) { Global.LastStrike = new SendStrike(); Global.LastStrike.isPlayer = isPlayer; Global.LastStrike.lowStrike = lowStrike; Global.LastStrike.pos = StartPos; Global.LastStrike.Kingdom = Kingdom; Global.LastStrike.script = this; other.SendMessage("CrushHP",null,SendMessageOptions.DontRequireReceiver); }
а это инициализация в Global скрипте:
Код // Last Strike Datas static var LastStrike : SendStrike; class SendStrike { var isPlayer : boolean; var Kingdom : String; var pow : float; // power of strike var pos : Vector3; // position (for direction backward) var MirroredStrike : float; // mirrored strike when opponent block then him enemies get hurt... var lowStrike : boolean; // Strike by Earth var type : String; // weapon type B(lunt)/P(ierce)/S(lash) var element : String; // weapon element F(ire)/W(ater)/E(arth)/A(ir)/L(ight)/D(arkness) var script : WeaponNew; }
и естественно легко назад данные возвратить через Static, может быть даже создать отдельные статические переменные
Сообщение отредактировал alexsilent - Четверг, 02 Августа 2018, 03:28 |
|
| |
alexsilent | Дата: Понедельник, 30 Июля 2018, 06:56 | Сообщение # 237 | Тема: Глобальный скрипт для всей игры |
почти ветеран
Сейчас нет на сайте
| Цитата pixeye (  ) Код
public class Toolbox : Singleton<Toolbox>{
public void Test(){ }
}
public class TestClass: Monobehavior{
Awake(){ Toolbox.Instance.Test(); } }
pixeye, Я только C# начинаю изучать, поэтому код выглядит сложновато( Я перехожу с ЮнитиСкрипта и там вроде не было ни синглтонов, ни Instance не встречал. А можно в двух словах, что за Синглтон или как это работает? ЗЫ для не программиста (я художник, но освоил ЮнитиСкрипт, но беда с сишарпом я пока только перехожу и не всё знаю, но учебный материал смотреть по C# не очень полезно, ибо там будут рассказывать всё с нуля, а многие вещи такие же как и в ЯваСкрипте и поэтому это не мой вариант, много времени потратится на то что и так знаю, лучше бы акцентировать на том, чего нет в яваскрипте, но таких уроков я ещё не встречал.
Добавлено (30 Июля 2018, 07:00) --------------------------------------------- Видимо, если не разберусь с синглтонами (вообще по хорошему я хотел бы избегать сложных вещей программирования, ибо я не программист, сложные структуры не люблю в программировании, хорошо если их можно обойти), а если нет, то буду со старыми граблями работать)
Сообщение отредактировал alexsilent - Понедельник, 30 Июля 2018, 07:04 |
|
| |
alexsilent | Дата: Понедельник, 30 Июля 2018, 05:40 | Сообщение # 238 | Тема: Глобальный скрипт для всей игры |
почти ветеран
Сейчас нет на сайте
| Подумал, может есть лучше решение для создания всех глобальных переменных и функций для игры, чем мой костыль:
Я делаю так: 1) создаю префаб с именем Global 2) создаю скрипт Global и привязываю к префабу, в этом скрипте есть функция не удалять после загрузки 3) потом раскидываю по всем уровням эти префабы, чтобы тестировать независимо от того на какой локации находишься, 4) также в скрипте есть удаление всех копий, потому-что после перезагрузки уровня уже будут два клона префаба Global, и поэтому новый префаб удаляется
но это всё как-то костыльно
Неужели нет более нормального способа в Unity для создания глобальных функций, контроля игры и переменных?
Например скрипт, который не надо пихать в сцену, но там будет работать Update и FixedUpdate и функции и к которому всегда есть путь?!
Или может быть автоматическое создание скрипта/префаба, чтобы не расставлять везде эти префабы и не проверять клон?!
Сообщение отредактировал alexsilent - Понедельник, 30 Июля 2018, 05:45 |
|
| |
alexsilent | Дата: Вторник, 17 Июля 2018, 14:46 | Сообщение # 239 | Тема: Переход с UnityScript на Csharp для не программиста |
почти ветеран
Сейчас нет на сайте
| Цитата InsaneSystems (  ) Как вариант, вот так. Добавляешь item в первую позицию, сдвигая остальные. О, так можно добавлять вообще на любую позицию?! Круто!Добавлено (01 Октября 2019, 09:14) --------------------------------------------- Откопал свою старую тему, не совсем некропостинг, ибо всё ещё перехожу на C#, и это всё ещё актуально, этот процесс сложен для художника.
Появилось пару вопросов:
1) Можно ли работать с одной осью в C#, как на JS?
Код transform.position.x += .5;
2) Зачем в С#, дополнительное отступление?
Код using System.Collections; using System.Collections.Generic; using UnityEngine;
public class NewBehaviourScript : MonoBehaviour { void Start () { print("Okay!"); } }
То есть зачем класс скобками окружать? В один скрипт что-ли можно два класса добавить?
Код using System.Collections; using System.Collections.Generic; using UnityEngine;
public class NewBehaviourScript : MonoBehaviour { void Start () { print("Okay!"); } } // Можно ли добавить этот второй класс? Раз уж тут в скрипте есть отдельные скобки? public class NewBehaviourScript2 : MonoBehaviour { void Start () { print("Okay 2!"); } }
Этот лишний TAB пробел меня отвлекает, как будто кажется я где-то скобку не закрыл, придётся привыкать!  Добавлено (01 Октября 2019, 09:19) --------------------------------------------- PS Тут забавный баг на форуме, я это сообщение не могу отредактировать, Может потому-что оно якобы старое? Но я ведь новое сообщение написал, и оно "стакнулось" в старое сообщение, и может поэтому не могу поправить текст.
|
|
| |
alexsilent | Дата: Вторник, 17 Июля 2018, 13:30 | Сообщение # 240 | Тема: Переход с UnityScript на Csharp для не программиста |
почти ветеран
Сейчас нет на сайте
| Цитата InsaneSystems (  ) Цитата 2) Как добавлять Add и Push
Код yourList.Add(1);
В скобках - ваш объект. В данном случае это число, поскольку список типа int. Элемент добавится в конец списка.
А как в начало списка добавлять? Как Push в Array на UnityScript
|
|
| |
|