Вторник, 16 Сентября 2025, 17:03

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
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, можно ли
как-то узнать количество всех скриптов на уровне написав что-то типа
Код
MyScript.length
хотя кончено это не массив, а было бы прикольно)

Также второй случай когда это нужно, если я захочу всем скриптам на уровне отправить какую-то срочную команду.

Пока что я сделал свой велосипед:
создаю внутри скрипта переменную глобального динамического массива, где записываю все скрипты,
которые были созданы при Awake и удаляю при OnDestroy, либо второй способ ищу все объекты GameObject
и просматриваю на существующий скрипт через GetComponent.

Но вдруг в юнити уже сразу ведётся такая подобная вещь, а я просто не знал.


Сообщение отредактировал alexsilent - Суббота, 25 Августа 2018, 16:24
alexsilentДата: Вторник, 21 Августа 2018, 04:19 | Сообщение # 226 | Тема: Unity 3D. Основы скриптинга на C#. Часть 1.
почти ветеран
Сейчас нет на сайте
интересно зачем все пишут
Код
Debug.Log(outString);


когда короче будет:
Код
print(outString);


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 слотов, начнёт тормозить. Это скорее доисторическая боязнь неизвестности :D


Сообщение отредактировал 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#,
и это всё ещё актуально, этот процесс сложен для художника. crazy

Появилось пару вопросов:

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
Поиск:

Все права сохранены. GcUp.ru © 2008-2025 Рейтинг