Результаты поиска
| |
ArtemS | Дата: Вторник, 18 Сентября 2018, 05:59 | Сообщение # 61 | Тема: Rigidbody движется не плавно, а рывками, как делать движение |
почетный гость
Сейчас нет на сайте
| Мало инфы! оч мало инфы!
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Четверг, 06 Сентября 2018, 06:36 | Сообщение # 62 | Тема: Ошибка на сервере SignalR |
почетный гость
Сейчас нет на сайте
| Код InvalidOperationException: Collection was modified; enumeration operation may not execute. System.ThrowHelper.ThrowInvalidOperationException (System.ExceptionResource resource) (at <cfc149f8218b496788d8493c87de777a>:0) System.Collections.Generic.List`1+Enumerator[T].MoveNextRare () (at <cfc149f8218b496788d8493c87de777a>:0) System.Collections.Generic.List`1+Enumerator[T].MoveNext () (at <cfc149f8218b496788d8493c87de777a>:0) SignalRClient+<SendAndSyncData>c__Iterator1.MoveNext () (at Assets/Scripts/SignalRClient.cs:83) UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)
Делаю сетевую сервер-клиентскую игру. Сделал передачу координат, все прекрасно работает: координаты передаются, во всех окнах все гладенько двигается у всех, но спустя секунд 5-10 движений происходит вот эта ошибка и все! Связь будто обрывается и прекращается синхроницазия между игроками. Может кто подсказать как эту хрень избежать ?
Делаю с использованием SignalR.
Код private IEnumerator SendAndSyncData() { yield return new WaitForSeconds(0.06f); //каждые 60 мс шлет Update
if (_isPlayerRegister) { if (_gameHelper.CurrentPlayerGameObject) {
Vector3 pos = _gameHelper.CurrentPlayerGameObject.GetComponent<PlayerController>().SyncPosition; Quaternion rot = _gameHelper.CurrentPlayerGameObject.GetComponent<PlayerController>().SyncRotation; SyncObjectModel syncObjectModel = new SyncObjectModel() { Id = _gameHelper.CurrentPlayerGameObject.GetComponent<SignalRIdentity>().NetworkID,
X = pos.x, Y = pos.y, Z = pos.z,
aX = rot.x, aY = rot.y, aZ = rot.z, aQ = rot.w }; //отправляет на обновление syncObjectModel hubProxy.Invoke("UpdateModel", syncObjectModel); }
//синкаем позицию if (_syncObjectPool.Count > 0) {
foreach (var syncObjectModel in _syncObjectPool) { SignalRIdentity signalRIdentity = _gameHelper.OtherPlayers.FirstOrDefault(p => p.NetworkID == syncObjectModel.Id); if (signalRIdentity) { PlayerController playerController = signalRIdentity.GetComponent<PlayerController>();
Vector3 pos = new Vector3(syncObjectModel.X, syncObjectModel.Y, syncObjectModel.Z); Quaternion rot = new Quaternion(syncObjectModel.aX, syncObjectModel.aY, syncObjectModel.aZ, syncObjectModel.aQ);
playerController.SyncPosition = pos; playerController.SyncRotation = rot; } } }
} StartCoroutine(SendAndSyncData()); }
^ Так идет получение позиции в клиенте
Код //рассылка обновления public void BroadcastShape(object state) { if (_modelUpdated) { foreach (var item in _oneFrameSyncModels ) { //если зарегестрирован значит имеет право слать свои координаты //шлет всем кроме себя if (_players.Any(p => p.ConnectionId == item.Authority)) //вызывать (AllExcept) у всех, кроме отсылающего (item.Authority) метод updateGameModels и слать в него item _hubContext.Clients.AllExcept(item.Authority).updateGameModels(item); } //здесть обнуляем список изменений _oneFrameSyncModels = new ConcurrentQueue<SyncObjectModel>(); _modelUpdated = false; } }
//обновление модели public void UpdateModel(SyncObjectModel clientmodel) { _oneFrameSyncModels.Enqueue(clientmodel); _modelUpdated = true; }
^ А это то, что происходит на сервереДобавлено (06 Сентября 2018, 07:03) --------------------------------------------- Все нашел ошибку. Забыл чистить лист на обновление
хуяк, хуяк и в продакшн
Сообщение отредактировал ArtemS - Четверг, 06 Сентября 2018, 06:51 |
|
| |
ArtemS | Дата: Понедельник, 09 Апреля 2018, 18:07 | Сообщение # 63 | Тема: Проблема со сценами || Android |
почетный гость
Сейчас нет на сайте
| Myrkonianin, и лучше писать
хуяк, хуяк и в продакшн
Сообщение отредактировал ArtemS - Понедельник, 09 Апреля 2018, 18:07 |
|
| |
ArtemS | Дата: Суббота, 07 Апреля 2018, 17:40 | Сообщение # 64 | Тема: Проблема со сценами || Android |
почетный гость
Сейчас нет на сайте
| а перед этой строчкой
Код if (health == 0) { isRestart (); }
у тебя чему health равны если черед Debug.Log вывести?
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Суббота, 07 Апреля 2018, 17:27 | Сообщение # 65 | Тема: Button проблема |
почетный гость
Сейчас нет на сайте
| ты похоже в Options кнопку перекидываешь, а не панель. ну либо надо проект смотреть.
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Пятница, 06 Апреля 2018, 04:13 | Сообщение # 66 | Тема: Button проблема |
почетный гость
Сейчас нет на сайте
| По сути все должно работать, если ты правильно раскидал действия.
вешаешь на какой-нибудь объект скрипт, добавляешь в public GameObject свою panel, в кнопке с открытием панели добавляет онклик этот метод, кнопку "язык" закинул в panel, сделал панель не активной, чтобы кнопка "язык" была активна.
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Четверг, 05 Апреля 2018, 04:07 | Сообщение # 67 | Тема: Button проблема |
почетный гость
Сейчас нет на сайте
| а что у тебя в Options закинуто ?
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Четверг, 29 Марта 2018, 18:30 | Сообщение # 68 | Тема: Не работают кнопки GUI |
почетный гость
Сейчас нет на сайте
| Я надеюсь проблема не в том, что он у тебя всегда Test01 выводит ?))
в он клик какой метод вставляешь ?
если надо чтобы актив менял значение сделай что-то типа
Код void isActive() {active = !active}
и добавь в онклик, должно работать
хуяк, хуяк и в продакшн
Сообщение отредактировал ArtemS - Четверг, 29 Марта 2018, 18:39 |
|
| |
ArtemS | Дата: Четверг, 22 Февраля 2018, 18:58 | Сообщение # 69 | Тема: Как исправить систему проверки на касание к земле? |
почетный гость
Сейчас нет на сайте
| Цитата drcrack ( ) OnTriggerStay2D
drcrack, предполагаю, что он будет выходить из него при смене платформы
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Четверг, 22 Февраля 2018, 18:09 | Сообщение # 70 | Тема: Как исправить систему проверки на касание к земле? |
почетный гость
Сейчас нет на сайте
| Пробовал объединят платформы через V или делать один общий коллайдер ?
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Пятница, 16 Февраля 2018, 13:26 | Сообщение # 71 | Тема: Как сделать физику гранатомета? |
почетный гость
Сейчас нет на сайте
| Цитата Goganoid ( ) как задать угол выстрела
делаешь пушку, задаешь ей какую-то механику движения ( стрелочками там чтобы вертелась относительно низа или за мышкой следила). на кончик вешаешь невидимый объект который порождает снаряд.
Цитата Goganoid ( ) снаряд вращался
делаешь снаряд трехмерным и rotation вращаешь вокруг какой тебе нужно оси. либо можешь задать анимацию вращения. типа блик на пульке движется сверху вниз
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Пятница, 16 Февраля 2018, 13:17 | Сообщение # 72 | Тема: Система частиц. |
почетный гость
Сейчас нет на сайте
| Цитата BlazeCruzer ( ) if (Time.timeSinceLevelLoad > 0.1f) { Nebula.Pause(); StarField.Pause(); }
в Invoke запихни это в низу Start, чтобы в Update чего попало не было
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Пятница, 16 Февраля 2018, 13:10 | Сообщение # 73 | Тема: Эффект свечения |
почетный гость
Сейчас нет на сайте
| Есть мысль запомнить расстояние от камеры до объекта (distMax) , и делить на нее текущее расстояние (distCur). Собственно переменную свечения приравнивать к полученному результату Код emission = distCur / distMax . Можешь делить/умножать (не знаю что там лучше подойдет) на какую-нибудь переменную для усиление эффекта
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Пятница, 09 Февраля 2018, 08:23 | Сообщение # 74 | Тема: DoT заклинания, да и вообще заклинания |
почетный гость
Сейчас нет на сайте
| Цитата drcrack ( ) Лично я вот вообще ничего не понял, что именно ты делаешь в этом куске кода и зачем
чтобы два одинаковых ДоТ/баф/дебаф ненакладывалось, я удаляю старый по ID, у новых ID всегда больше (ну я надеюсь )
Цитата drcrack ( ) Правда я бы удалял other.gameObject.
а как я определю тот ли это баф или кто был раньше ?
Цитата defGMDefeloper ( ) есть корутины.Можно запускать несколько одинаковых сразу с разными параметрами,а это что вы делаете ,как по мне гемор
я думал над этим... создать лист заклинаний и добавлять туда все произнесенные, потом удалять их из списка если оно закончилось. но мне опыта не хватает как это сделать и посмотреть не знаю где. Как понимаю нужно вешать какой-то скрипт на врага который будет собирать принеменные на нем заклинания
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Четверг, 08 Февраля 2018, 07:46 | Сообщение # 75 | Тема: DoT заклинания, да и вообще заклинания |
почетный гость
Сейчас нет на сайте
| Пасаны, использую заклинания бафы/дебафы/доты как некие невидимые тригера Go которые следуют за целью. И чтобы у цели не было 2ух одинаковых заклинаний использую такую механику. 1. Определяю такой же это спелл или нет 2. Сравниваю что было реализовано раньше и удаляю его
Код void OnTriggerEnter2D(Collider2D other) { if ((other.gameObject.name == gameObject.name) && (other.gameObject.transform.GetInstanceID() > gameObject.transform.GetInstanceID())) Destroy(gameObject); }
Вот собственно вопрос в том, что правильно ли я это делаю ?
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Воскресенье, 07 Января 2018, 19:37 | Сообщение # 76 | Тема: Вопрос по освещению |
почетный гость
Сейчас нет на сайте
| Kolsefer, а коллайдеры есть на стенах ?
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Понедельник, 11 Декабря 2017, 19:57 | Сообщение # 77 | Тема: Создание префаба |
почетный гость
Сейчас нет на сайте
| При переносе со сцены объекта в префаб с него пропадают все ссылки на канвас (слайдеры , панели и прочее). Как можно это избежать ? Добавлено (11 декабря 2017, 19:57) --------------------------------------------- Нашел способ, делать канвас дочерним. А можно как-то сохранять ссылки на внешние канвасы ?
хуяк, хуяк и в продакшн
|
|
| |
ArtemS | Дата: Среда, 15 Ноября 2017, 17:25 | Сообщение # 78 | Тема: Аналог Start но после Update |
почетный гость
Сейчас нет на сайте
| pixeye, drcrack, alexsilent, да понятное дело что так можно, но есть же LateUpdate , почему не может быть Exit какой-нибудь)
хуяк, хуяк и в продакшн
Сообщение отредактировал ArtemS - Среда, 15 Ноября 2017, 17:34 |
|
| |
ArtemS | Дата: Вторник, 14 Ноября 2017, 18:31 | Сообщение # 79 | Тема: Аналог Start но после Update |
почетный гость
Сейчас нет на сайте
| Нужен метод на подобии Start(), только чтобы выполнялся в конце первого цикла программы, ну либо хотя бы после Update() и лишь один раз ?
https://docs.unity3d.com/ru/530/Manual/ExecutionOrder.html
тут нечего подходящего не обнаружил..либо в глазки долблюсь нещадно)
хуяк, хуяк и в продакшн
Сообщение отредактировал ArtemS - Вторник, 14 Ноября 2017, 18:32 |
|
| |
ArtemS | Дата: Пятница, 27 Октября 2017, 04:49 | Сообщение # 80 | Тема: Террейны. |
почетный гость
Сейчас нет на сайте
| CleverRus, скрин в студию!!!
хуяк, хуяк и в продакшн
|
|
| |
|