Size: a a a

2020 March 15

AV

Ant Vol in unity3d.ru
Mikhail
Ты не первый и не последний это хочешь сделать. Игра очень популярная и клонов куча на неё. Можешь поискать реализацию на Unity. Может это тебе больше поможет.
Спасибо!
источник

TY

Timur Yusupov in unity3d.ru
Ребят, запись
источник

TY

Timur Yusupov in unity3d.ru
имеется ввиду только 8 или >8?
источник

TY

Timur Yusupov in unity3d.ru
LayerMask layerMask = 1 << 8;
источник

JL

Jack Harrison Lumers in unity3d.ru
Есть задача. Префабы динамически в контейнер идут (родительский объект с Layout Group). На префабах скрипт, в котором есть метод InitParameters. Каждый префаб инициализируется с разными параметрами, иногда это обычный value тип (int, float), иногда сложнее (string), а иногда reference тип (Словарь, список). Как сделать единый для них всех InitParameters, чтобы сделать оболочку для всех контейнеров такого типа, которые могут принимать "какие-то объекты" с "какими-то параметрами", чтобы объекты (GameObject'ы) сами параметры парсили внутри InitParameters и инициализировались с этими параметрами
источник

JL

Jack Harrison Lumers in unity3d.ru
До этого было так: InitParameters(params string[] parameters)
источник

JL

Jack Harrison Lumers in unity3d.ru
Но сейчас объекты нужно передавать в качестве параметров, и уже сложно. На сколько сложен (в плане вычислений) каст Dictionary или List в Object и обратно?
источник

PD

Paul Dyatlov in unity3d.ru
Jack Harrison Lumers
Но сейчас объекты нужно передавать в качестве параметров, и уже сложно. На сколько сложен (в плане вычислений) каст Dictionary или List в Object и обратно?
List и Dictionary наследуются от IEnumerable
источник

PD

Paul Dyatlov in unity3d.ru
private void Example<T>(IEnumerable<T> param)
       {
           
       }
источник

PD

Paul Dyatlov in unity3d.ru
Example(new List<int>());
Example(new Dictionary<string, int>());
источник

PD

Paul Dyatlov in unity3d.ru
Но можно и object кастить к нужному типу, это дешево
источник

JL

Jack Harrison Lumers in unity3d.ru
Спасибо, пробую через object. Если выйдет, отпишу
источник

AS

Anton Smetanin in unity3d.ru
Jack Harrison Lumers
Есть задача. Префабы динамически в контейнер идут (родительский объект с Layout Group). На префабах скрипт, в котором есть метод InitParameters. Каждый префаб инициализируется с разными параметрами, иногда это обычный value тип (int, float), иногда сложнее (string), а иногда reference тип (Словарь, список). Как сделать единый для них всех InitParameters, чтобы сделать оболочку для всех контейнеров такого типа, которые могут принимать "какие-то объекты" с "какими-то параметрами", чтобы объекты (GameObject'ы) сами параметры парсили внутри InitParameters и инициализировались с этими параметрами
Дженериком сделай:

public class MyClass<T>
{
   public void InitParameters(T parameters)
   {
       ...
   }
}
источник

AS

Anton Smetanin in unity3d.ru
Правда тогда придётся ещё одного наследника делать, если хочешь, чтобы оно работало как компонент
источник

JL

Jack Harrison Lumers in unity3d.ru
Да, они и так наследуются
источник

AS

Anton Smetanin in unity3d.ru
Ну тогда так и сделай
источник

JL

Jack Harrison Lumers in unity3d.ru
Сейчас с object[] допишу вариант, он тоже довольно гибким выглядит
источник

AS

Anton Smetanin in unity3d.ru
С object плохо, что кастить придётся
источник

AS

Anton Smetanin in unity3d.ru
Даункасты могут упасть в рантайме
источник

AS

Anton Smetanin in unity3d.ru
Поэтому их следует избегать
источник