(direction == Direction.Down) ? Vector3.up :
(direction == Direction.Up) ? Vector3.down :
(direction == Direction.Left) ? Vector3.right :
(direction == Direction.Right) ? Vector3.left :
throw new InvalidOperationException();
На -1 умножить?
Никак не сократишь, но лучше сделать вот так: Vector3 DirectionToVector(direction) { switch (direction) { case DirectionDown: return Vector3.up; case ... default: throw ...; } } Либо Dictionary<Direction, Vector3> map = new() { { DirectionDown, Vector3.up }, ... }; ... if (!map.TryGetValue(direction, out Vector3 increment)) throw ...; если Direction как-то аккуратно мапится на целые числа то можно map сделать массивом, поиск теоретически быстрее будет
можно сократить через switch expression
Обсуждают сегодня