Size: a a a

2020 March 16

M

Mikhail in unity3d.ru
Anton Smetanin
myRequirement = isMy ? (T)requirement : (T)new object();


Вот эта штука у тебя упадёт, когда isMy не выполнится
А как это можно решить?
источник

AS

Anton Smetanin in unity3d.ru
myRequirement = isMy ? (T)requirement : default(T);
источник

AS

Anton Smetanin in unity3d.ru
Если у тебя все проверки в IsMyRequriment будут вот такие:
public override bool IsMyRequriment(IRequirement requirement) => requirement is LevelRequirement;

то их можно вынести в базовый класс
источник

M

Mikhail in unity3d.ru
Anton Smetanin
myRequirement = isMy ? (T)requirement : default(T);
Точняк, а что  там будет кстати ? Он какой-нибудь тип туда подсунет ?
источник

AS

Anton Smetanin in unity3d.ru
Mikhail
Точняк, а что  там будет кстати ? Он какой-нибудь тип туда подсунет ?
Там будет null
источник

M

Mikhail in unity3d.ru
Anton Smetanin
Там будет null
А null сразу тудя передать можно было. Но тогда я не смог без if
источник

AS

Anton Smetanin in unity3d.ru
А этот TryGetMyRequriment где-то вообще вызывается?
источник

AS

Anton Smetanin in unity3d.ru
Ну в общем, если у тебя там везде проверка по типу идёт, то ты можешь вот так сделать:

https://pastebin.com/CQvLSMV3
источник

M

Mikhail in unity3d.ru
Anton Smetanin
Ну в общем, если у тебя там везде проверка по типу идёт, то ты можешь вот так сделать:

https://pastebin.com/CQvLSMV3
Ммм, точняк. Спасибо =)
источник

M

Mikhail in unity3d.ru
Anton Smetanin
Ну в общем, если у тебя там везде проверка по типу идёт, то ты можешь вот так сделать:

https://pastebin.com/CQvLSMV3
Я ещё уточнение добавил
where TRequriment : IRequirement
источник

AS

Anton Smetanin in unity3d.ru
Ага
источник

AS

Anton Smetanin in unity3d.ru
Я пропустил)
источник

M

Mikhail in unity3d.ru
Anton Smetanin
А этот TryGetMyRequriment где-то вообще вызывается?
Да, внутри  LevelRequirementView
источник

AS

Anton Smetanin in unity3d.ru
Anton Smetanin
Ну в общем, если у тебя там везде проверка по типу идёт, то ты можешь вот так сделать:

https://pastebin.com/CQvLSMV3
На самом деле тут не получится так с Init
источник

AS

Anton Smetanin in unity3d.ru
Придётся там делать два метода
источник

AS

Anton Smetanin in unity3d.ru
источник

AS

Anton Smetanin in unity3d.ru
Вот так
источник

M

Mikhail in unity3d.ru
Anton Smetanin
Придётся там делать два метода
Ну у меня и так там два метода
источник

M

Mikhail in unity3d.ru
Хм...
источник

M

Mikhail in unity3d.ru
Это конечно красиво, да вроде и так нормально должно работать. Не?
источник