Size: a a a

2018 September 21

СK

Санчес Kас in Alprog I/O
Алексей Клычников
Три скрипта три гейм объекта. Надо передавать данные между ними: поля и методы
Допустим у них общая точка куда они движутся (Transform).

[CreateAssetMenu]
TransformVariable: Scriptable object
{
  Transform Value;

}

Чтобы создать такой объект , нажимаем Assets/Create/ transformVariable

Назовём её Target.

У этих трёх парней есть компонент
FollowTarget: Monobehavior  
{
...
Public FollowTarget target;
Update
{
Followtarget(target.Value);

}

А задать нашу цель можно так

SetTarget: Monobehavior
{
FollowTarget target

Start()
{
     Target.value = this.transform;
}

}


}
источник

СK

Санчес Kас in Alprog I/O
Алексей Клычников
Три скрипта три гейм объекта. Надо передавать данные между ними: поля и методы
источник

СK

Санчес Kас in Alprog I/O
@cyberaven
Вот пример другой. 4 объекта. У каждых свой скрипт, но они используют общее значение PlayerHP
источник

MD

Maxim Dmitriev in Alprog I/O
Ну это типо отделение данных от логики
источник

СK

Санчес Kас in Alprog I/O
ну типа да
источник

MD

Maxim Dmitriev in Alprog I/O
В 2018 юнити новая же система эта на такой же идеи
источник

СK

Санчес Kас in Alprog I/O
@DmitrievMaks  ты про ECS ?
источник

MD

Maxim Dmitriev in Alprog I/O
Ну да
источник

АК

Алексей Клычников in Alprog I/O
Кста, можно вкратце что за херня? Что-то говорят ECS ваще норм и долго ждали, но что эта как-то люди забывают рассказать. А я считаю если ты не можешь что-то рассказать обычными словами то ты это не понимаешь.
источник

MD

Maxim Dmitriev in Alprog I/O
источник

MD

Maxim Dmitriev in Alprog I/O
Я беглым просмотром понял толтко что данные отдельно от логики и из за этого ппралелить можно на многоядерномть код
источник

АК

Алексей Клычников in Alprog I/O
Данные как база данных? Расширенный PrefFabs? Sql?
источник

СK

Санчес Kас in Alprog I/O
Юнити любят ругать что он не супер оптимизированый.
Она придумали слоган.

"Unity:  производительность по умолчанию"
Типа ты делаешь какойто скрипт для одного игрока. Потом такой... давай я сделаю 50000 игроков. И оно по идее не должно лагать. Аля производительность по умолчанию.

Чтобы это замутить они предлогают применять другие приемы. Использоывать ECS и тогда в паре с JobSystem ( новая штука для многопоточности ) ты получишь ту самую "производительность".
источник

СK

Санчес Kас in Alprog I/O
Програмирование на юнити сейчас похоже на Entety component system. Вот только без system.
источник

АТ

Александр Тужик in Alprog I/O
ECS — это паттерн проэктирования.
источник

АТ

Александр Тужик in Alprog I/O
Он состоит из трёх частей
источник

АТ

Александр Тужик in Alprog I/O
Entity - сущности. Но это не объекты. Это просто номера. Которые сами по себе ничего не значат. Просто обозначают номер сущности.
источник

АТ

Александр Тужик in Alprog I/O
Компоненты - это данные одинакового типа, которые привязаны к какой-то конкретной сущности (номеру).
источник

АТ

Александр Тужик in Alprog I/O
К одной сущности может быть привязано много компонент.
источник

АТ

Александр Тужик in Alprog I/O
Все компоненты одного типа лежат в одном месте (массиве) вместе.
источник