• Проблема с кодом на C#?

    QuiShimo
    @QuiShimo
    Держу путь на бекэнд :)
    Привет!

    Думаю, вы тут перемудрили с кодом. Конкретно по вашей проблеме, блоки if для евро и доллара находятся внутри блока для рублей. Поэтому не читаются, т.е. примерно так:
    if (list == "r")
     { ...
       if (list == "e") {...}
       if (list == "d") {...}
    }


    А нужно сделать так
    if (list == "r") { ... }
    if (list == "e") {...}
     if (list == "d") {...}


    И для одинакового кода лучше использовать методы или почитать больше уроков, чтобы понять как сделать этот код проще и лучше :)

    P.S. Вопросы лучше оформлять, так больше шансов на ответ или комментарии
    Ответ написан
    1 комментарий
  • Как исправить ошибки при компиляции проекта в Unity?

    tentrun
    @tentrun
    Clown c# inside
    Враги просто пацифистами стали.
    з.ы. нам видимо гадать необходимо почему? Или как ты себе ответ вообще представляешь?
    Ответ написан
    Комментировать
  • Как нажимать на кнопки в 3D?

    K0TlK
    @K0TlK
    Буллю людей.
    Ты делаешь рейкаст куда-то вперед от какого-то трансформа, а тебе нужно делать рейкаст в сторону курсора. Camera.ScreenPointToRay возвращает луч, который идет от камеры к месту на экране. Пример:
    var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    if (Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity))
    {
        Debug.DrawRay(hit.point, hit.normal * 10, Color.red, 10f);
    }


    И не надо так использовать тэги. Когда у тебя будет не 4 кнопки, а 40, то в методе OnButtonClick у тебя будет 40 условий? А если ты написал тэг с ошибкой, то будешь искать потом откуда ошибки валят? Выдели эти кнопки отдельно, получай нужный компонент при рейкасте и вызывай метод OnButtonClick уже у отдельного компонента.
    public interface IButton
    {
        public void OnClick();
    }
    
    public class YellowButton : IButton
    {
        public void OnClick()
        {
            Debug.Log("Yellow");
        }
    }
    
    public class Example : MonoBehaviour
    {
        private void Update()
        {
            if (Input.GetMouseButtonDown(0))
            {
                var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity))
                {
                    if(hit.transform.TryGetComponent(out IButton button))
                    {
                        button.OnClick();
                    }
                }
            }
    
        }
    }


    Также, каждый компонент может иметь метод OnMouseDown, который вызывается, когда игрок нажимает на него. Можно создать компонент кнопки и при нажатии на него будет вызываться ивент, на который можно подписать нужные методы.
    public class Button : MonoBehaviour
    {
        public event Action ButtonPressed;
    
        private void OnMouseDown()
        {
            ButtonPressed?.Invoke();
        }
    
    }
    
    public class ButtonHandler : MonoBehaviour
    {
        [SerializeField] private Button _button;
    
        private void OnEnable()
        {
            _button.ButtonPressed += DoStuff;
        }
    
        private void OnDisable()
        {
            _button.ButtonPressed -= DoStuff;
        }
    
        private void DoStuff()
        {
    
        }
    }
    Ответ написан
    Комментировать
  • Какой ЯП нужно выучить для разработки игр вроде Clash of Clans/Lords Mobile на ПК, смартфоны и т.д.?

    @Akela_wolf
    Extreme Programmer
    Без движков - это очень трудоемко. Любая современная игра имеет в основании ту или иную библиотеку, которая берет на себя типовые задачи: вывод графики, вывод звука, обработка ввода и т.д.

    Сделать это можно на любом языке - от C++ до Javascript, под любой популярный язык найдется библиотека для разработки игр (и вероятнее всего не одна).

    Unity - вполне вариант. Насколько знаю, позволяет делать игры как для десктопа, так и для мобильных платформ.
    Если хочется чего-то менее монструозного (ближе к "настоящему" программированию, а не "конструктору") - то я бы рекомендовал посмотреть Kotlin. Это официальный язык для разработки под андроид и он же прекрасно будет работать на десктопе. Лично я "щупал" связку Kotlin + libGDX, меня вполне устроило.
    Ответ написан
    1 комментарий
  • Должен ли я модерировать нецензурные имена в приложении?

    vabka
    @vabka
    Токсичный шарпист
    Да, приложения с пользовательским контентом, который не модерируется, как правило, имеют рейтинг 18+.

    Мат в некоторых странах, а в частности в РФ - это административка (к счастью только автору, а не площадке, емнип)
    Ответ написан
    5 комментариев
  • Error CS1061: 'GameObject' p.s. ето юнити?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Да, юнити
    Ответ написан
    Комментировать
  • Как создать и сохранить PDF файл с особым форматированием текста?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    class Demo {
        public static <T> List<List<T>> chunkify(List<T> data, int n) {
            List<List<T>> chunks = new ArrayList<>();
    
            for (int i = 0; i < data.size(); i += n) {
                chunks.add(data.subList(i, Math.min(data.size(), i + n)));
            }
    
            return chunks;
        }
    
        public static <T> List<List<T>> transpose(List<List<T>> data) {
            final int n = data.stream()
                .mapToInt(List::size)
                .max()
                .orElse(-1);
    
            List<Iterator<T>> iterators = data.stream()
                .map(List::iterator)
                .collect(Collectors.toList());
    
            return IntStream.range(0, n)
                .mapToObj(unused -> iterators.stream()
                    .filter(Iterator::hasNext)
                    .map(Iterator::next)
                    .collect(Collectors.toList()))
                .collect(Collectors.toList());
        }
    
        public static String makeTable(List<List<Integer>> data) {
            String format = data.stream()
                .flatMap(List::stream)
                .max(Comparator.comparing(identity()))
                .map(Objects::toString)
                .map(String::length)
                .map(fieldLength -> "%-" + (fieldLength + 1) + "d")
                .orElse("%d ");
    
            String table = "";
            for (int x = 0; x < data.size(); x++) {
                List<Integer> chunk = data.get(x);
                for (int y = 0; y < chunk.size(); y++) {
                    table += String.format(format, chunk.get(y));    
                }
                table += "\n";
            }
            return table;
        }
    
        public static void do() {
            // Тестовые данные
            List<Integer> numbers = new Random()
                .ints(50, 1, 1000)
                .boxed()
                .collect(Collectors.toList());
    
            // Разбиваем на блоки по 15 элементов
            List<List<Integer>> chunks = chunkify(numbers, 15);
    
            // Транспонируем
            List<List<Integer>> transposed = transpose(chunks);
    
            // Форматируем в строку
            String table = makeTable(transposed);
    
            // Записываем строку в файл
            try (BufferedWriter writer = new BufferedWriter(new FileWriter("table.txt"))) {
                writer.write(table);
            }
        }
    }

    Как выводить в pdf - зависит от того, какую библиотеку для работы с pdf вы будете использовать.
    Ответ написан
    1 комментарий
  • Как создать и сохранить PDF файл с особым форматированием текста?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    - "откусывайте" нужное количество элементов от массива
    - печатаете то что "откусили"
    - переходите на новую строку
    - повторяете пока не закончился массив

    UPD.:
    Ну раз Сергей Горностаев расщедрился на код, то я добавлю свой вариант:
    import java.util.*;
    import java.util.stream.Collectors;
    import java.util.stream.IntStream;
    import java.util.stream.Stream;
    
    class Scratch {
    
        public static void main(String[] args) {
            int[] ints = new int[]{13, 24, 24, 65, 3, 32, 27, 77, 88, 25, 74, 14};
    
            batches(Arrays.stream(ints).boxed().toList(), 3)
                    .map(list -> list.stream().map(String::valueOf).collect(Collectors.joining(" ")))
                    .reduce((s1, s2) -> s1 + System.lineSeparator() + s2)
                    .ifPresent(System.out::println);
        }
    
        private static <T> Stream<List<T>> batches(List<T> source, int length) {
            var size = source.size();
            if (length <= 0 || size <= 0) {
                return Stream.empty();
            }
            var fullChunks = (size - 1) / length;
            return IntStream.range(0, fullChunks + 1).mapToObj(
                    n -> source.subList(n * length, n == fullChunks ? size : (n + 1) * length));
        }
    }
    Ответ написан
    1 комментарий
  • Как преобразовать массив int в строку с пробелами?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    var intArray = new int[]{1, 2, 3};
    
    var string = Arrays.stream(intArray)  // преобразуем массив в IntStream
                    .boxed() // преоборазуем IntStream в Stream<Integer>
                    .map(String::valueOf) // Integer -> String
                    .collect(Collectors.joining(" ")); // собираем в строку с разделителем " "
    Ответ написан
    1 комментарий
  • В каком движке игра будет работать стабильнее: Unreal Engine или Unity?

    vabka
    @vabka
    Токсичный шарпист
    В каждом из движков есть такие вещи, каких в принципе нет в другом, или которые делаются совершенно другим образом.
    По тому под
    скрипты примерно тоже

    Я буду понимать, что на Unity не используется DOTS, а на UE не используются всякие страшные плюсовые хаки.
    В таком случае будет примерно одинаково. В некоторых моментах, возможно, на UE будет чуть лучше, но не факт.
    Ответ написан
    1 комментарий
  • Как реализовать зависимость скорости выстрела от скорости персонажа?

    @Ente
    Unity developer
    Перед спавном снаряда, ты можешь брать последнее изменения позиции игрока (например, пошел с 0,0 в 0,1) и добавлять к направлению снаряда, например 10% этого изменения. (прибавляешь 0,0.1 к вектору снаряда)
    Ответ написан
    Комментировать
  • Почему пищит кулер ноутбука?

    Zoominger
    @Zoominger Куратор тега Ноутбуки
    System Integrator
    Пользоваться можно.
    Возможно, низкочастотный звук идёт от подшипника, который перестаёт пищать, когда нагреется.
    Не страшно.
    Ответ написан
    Комментировать
  • Как изменять скорость частиц в Unity через скрипт?

    KraGenDeveloper
    @KraGenDeveloper
    Unity Developer
    Вот держите
    private ParticleSystem ps;//ваша система частиц
        public float Value = 1.0F;//типа скорость которую через корутину меняете
    
        void Start()
        {
            ps = GetComponent<ParticleSystem>();//получаем систему частиц
        }
    
        void Update()
        {
            var main = ps.main;//хз что но оно надо (не разбирал)
            main.startSpeed = Value;//начальная скорость равна значению
        }
    //корутину сделайте сами)


    Источник - ТЫК
    Ответ написан
    2 комментария