• Как сделать, чтобы объект двигался вместе с платформой?

    IDzone-x
    @IDzone-x
    Костыли сила паттерны могила
    Ну например при косании можно:

    Кубик.transform.SetParent(платформа);

    А при выходе наоборот

    P.S помню что-то подобное было в одной книге ну если хочешь узнать то пиши в телегу может найду
    Ответ написан
    1 комментарий
  • Как сделать так что бы объект двигался в другую сторону, после того как дойдет до определенной координаты?

    @lubitel_pelmen
    Привет. Хоть я в этом не професионал, но попробуй в скрипте объекта который ты хочешь двигать, через if напиши что когда объект доходит до определённой кординаты его скорость становится отрицательной. И да делай это в Update . Думаю помог
    Ответ написан
    Комментировать
  • В чем плюсы и минусы способов? Что лучше использовать?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Лучше использовать второй вариант.
    Единственный минус - это не будет работать на старых версиях языка.
    Но я бы использовал .Last()
    Ответ написан
    Комментировать
  • Как отыскать индекс значения в массиве?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Уж больно мне не нравится вариант от BasiC2k, по тому решил написать свой:
    1. Чуть более компактный в плане памяти и количества кода, если нужно найти индекс один раз. + С проверкой, на отсутствие слова.
    var array = new[] { "Картоновый человек", "Морковка белая", "секретный специалист " };
    
    Console.WriteLine(FindIndexOfWord(array, "картоновый")); // 0
    Console.WriteLine(FindIndexOfWord(array, "Бомбастер")); // -1
    Console.WriteLine(FindIndexOfWord(array, "Специалист")); // 2
    
    // В 1 проход. Если не нравится linq - можно одной кнопкой переписать на циклы и получится почти zero-allocation код.
    static int FindIndexOfWord(string[] array, string word) => 
        array
          .Select((str, i) => (str.Split(' '), i))
          .Where(x => x.Item1.Any(w => w.Equals(word, StringComparison.OrdinalIgnoreCase)))
          .Select(x => x.Item2)
          .Cast<int?>()
          .FirstOrDefault() ?? -1;

    2. Более быстрый, если нужно искать данные много раз и в больших массивах:
    var array = new[] { "Картоновый человек", "Морковка белая", "секретный специалист " };
    
    var index = new WordIndex(array);
    Console.WriteLine(index.Find("картоновый")); //0
    Console.WriteLine(index.Find("чикибамбони")); //-1;
    
    // Поиск элемента в словаре по ключу выполняется за константное время, так что если нужно делать это часто и на больших массивах, то выгоднее 1 раз всё проиндексировать.
    class WordIndex {
       private readonly Dictionary<string, int> _cache;
       
       public WordIndex(IEnumerable<string> seq) {
         _cache = new Dictionary<string, int>();
         var i = 0;
         foreach(var str in seq) {
           foreach(var word in str.Split(' ')) {
             var key = word.ToUpperInvariant();
             if(!_cache.ContainsKey(key)) {
               _cache.Add(key, i);
             }
           }
           i++;
         }
       }
       
       public int Find(string word) =>
         _cache.TryGetValue(word.ToUpperInvariant(), out var value)
           ? value
           : -1;
    }
    Ответ написан
    2 комментария
  • Как отыскать индекс значения в массиве?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Для точного совпадения:

    int numm = array.ToList().IndexOf("Морковка белая");

    Для совпадения по части строки:

    string[] array = { "Картоновый человек", "Морковка белая", "секретный специалист " };
    string item = array.ToList().Where(x => x.Contains("Морковка")).FirstOrDefault();
    int numm = array.ToList().IndexOf(item);

    обратите внимание, что в этом примере берётся индекс первого подходящего элемента. И нет обработки исключения, если элемент не найден.
    Ответ написан
    1 комментарий
  • Можно ли задать цвет для текста в консоли?

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

    В теории, можно при помощи специальных последовательностей (не помню точный термин) выбрать произвольный цвет, но такая фича поддерживается не всеми терминалами на винде.
    Есть ещё либа, которая упрощает работу с цветом:
    https://github.com/tomakita/Colorful.Console

    UPD: Вам нужен Enum.Parse()
    Ответ написан
    3 комментария