Size: a a a

2021 January 25

E

Eugene in unity3d.ru
public abstract class PlayerAbility{
       public abstract void Do(PlayerScript player);
   }

   public class Block : PlayerAbility{
       public override void Do(PlayerScript player){
           player.MakeBlock();
       }
   }

   public class Dodge : PlayerAbility{
       public override void Do(PlayerScript player){
           player.MakeDodge();
       }
   }


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

abilityList = new List<PlayerAbility>();
abilityList.Add(dodge);
abilityList.Add(block);

В данном случае мне нужно, что бы первым в списке всегда были Dodge объекты, а потом уже и Block.
Как я могу отсортировать их или сравнить?
В дальнейшем я буду просто пробегать по списку и вытаскивать эти объекты по очереди.
источник

AA

Ali Aidarkhan in unity3d.ru
👌
источник

🎄K

🎄 Viktor 🎄 Korkishko... in unity3d.ru
Переслано от 🎄 Viktor 🎄 Korkishko...
Скажите, пожалуйста, как правильно генерить шанс на такие события? То есть, здесь сказано, что шанс составляет от 1/4752500 до 1/345600, правильно я понимаю? Как это правильно выразить в коде?
источник

🎄K

🎄 Viktor 🎄 Korkishko... in unity3d.ru
Переслано от 🎄 Viktor 🎄 Korkishko...
Как я понимаю, это явно неправильно
источник

S

Sun Cream in unity3d.ru
🎄 Viktor 🎄 Korkishko 🎄
Переслано от 🎄 Viktor 🎄 Korkishko 🎄
Как я понимаю, это явно неправильно
я так понимаю, ты рандомишь число от X до Y => получаешь обратную пропорцию вероятности.
например шанс дождя в среднем от 1/30 до 1/60 за фрейм

рандомишь число от 30 до 60
45

потом от 0 до 45 и если это 0 — дождь
источник

VA

Vitaliy Anapov in unity3d.ru
🎄 Viktor 🎄 Korkishko 🎄
Переслано от 🎄 Viktor 🎄 Korkishko 🎄
Скажите, пожалуйста, как правильно генерить шанс на такие события? То есть, здесь сказано, что шанс составляет от 1/4752500 до 1/345600, правильно я понимаю? Как это правильно выразить в коде?
chance = Random.Range(0, 4752500)
if(chance == 1)
источник

S

Sun Cream in unity3d.ru
Sun Cream
я так понимаю, ты рандомишь число от X до Y => получаешь обратную пропорцию вероятности.
например шанс дождя в среднем от 1/30 до 1/60 за фрейм

рандомишь число от 30 до 60
45

потом от 0 до 45 и если это 0 — дождь
хотя по сути можно руками зафиксировать твой шанс дождя, т.е. ставить фиксированно 45 или 60, или наоборот — 30

и каждый кажр фиксированно 1/твое число веротность
источник

🎄K

🎄 Viktor 🎄 Korkishko... in unity3d.ru
Sun Cream
я так понимаю, ты рандомишь число от X до Y => получаешь обратную пропорцию вероятности.
например шанс дождя в среднем от 1/30 до 1/60 за фрейм

рандомишь число от 30 до 60
45

потом от 0 до 45 и если это 0 — дождь
Но 1/60 меньше же 1/30
источник

S

Sun Cream in unity3d.ru
🎄 Viktor 🎄 Korkishko 🎄
Но 1/60 меньше же 1/30
и что?
у тебя нет фиксированной вероятности выпадения дождя за фрейм же.
она от 1/30 до 1/60 в среднем.

можно каждый фрейм получать вероятность на этом фрейме от 1/60 до 1/30 (а, да, я понял о чем ты, но это не существенно)
и потом по этой вероятности дождь
источник

🎄K

🎄 Viktor 🎄 Korkishko... in unity3d.ru
Sun Cream
и что?
у тебя нет фиксированной вероятности выпадения дождя за фрейм же.
она от 1/30 до 1/60 в среднем.

можно каждый фрейм получать вероятность на этом фрейме от 1/60 до 1/30 (а, да, я понял о чем ты, но это не существенно)
и потом по этой вероятности дождь
Выходит так?
источник

🎄K

🎄 Viktor 🎄 Korkishko... in unity3d.ru
Sun Cream
и что?
у тебя нет фиксированной вероятности выпадения дождя за фрейм же.
она от 1/30 до 1/60 в среднем.

можно каждый фрейм получать вероятность на этом фрейме от 1/60 до 1/30 (а, да, я понял о чем ты, но это не существенно)
и потом по этой вероятности дождь
источник

S

Sun Cream in unity3d.ru
ну тип того
но имхо все же зафиксировать средний лучше, ср.арифметическое и все.
просто два рандома каждый раз делать
источник

S

Sun Cream in unity3d.ru
не очень повлияет на твой баланс, думаю
источник

🎄K

🎄 Viktor 🎄 Korkishko... in unity3d.ru
Sun Cream
ну тип того
но имхо все же зафиксировать средний лучше, ср.арифметическое и все.
просто два рандома каждый раз делать
Понял, спасибо большое!
источник

М

Михаил ♨ in unity3d.ru
Всем привет, это VS Code?
источник

D

Dmitrii in unity3d.ru
Да
источник

М

Михаил ♨ in unity3d.ru
Dmitrii
Да
Ок, спасибо
источник

M

MadMax in unity3d.ru
кто знает как это исправить
источник

M

MadMax in unity3d.ru
,?
источник

P

Phantom in unity3d.ru
Eugene
public abstract class PlayerAbility{
       public abstract void Do(PlayerScript player);
   }

   public class Block : PlayerAbility{
       public override void Do(PlayerScript player){
           player.MakeBlock();
       }
   }

   public class Dodge : PlayerAbility{
       public override void Do(PlayerScript player){
           player.MakeDodge();
       }
   }


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

abilityList = new List<PlayerAbility>();
abilityList.Add(dodge);
abilityList.Add(block);

В данном случае мне нужно, что бы первым в списке всегда были Dodge объекты, а потом уже и Block.
Как я могу отсортировать их или сравнить?
В дальнейшем я буду просто пробегать по списку и вытаскивать эти объекты по очереди.
queue, либо реализуй IComparable, либо .OrderBy
источник