• Как выучить с# под юнити?

    Kubatai
    @Kubatai
    Техник-программист
    Если не боитесь английского языка, то Unity предоставляет огромный интересный курс по обучению разработке на Unity: https://learn.unity.com/
    Ответ написан
  • Как работать с C++ в vscode на MacOS?

    Kubatai
    @Kubatai
    Техник-программист
    VS Code как таковой не умеет создавать проекты, так как он всего лишь редактор текста с расширениями, а не полноценная среда разработки.
    Для работы с новым проектом алгоритм примерно такой:
    1. Установить clang
    2. Установить расширение C/C++ для VS Code
    3. Создать пустой каталог
    4. Открыть его через VS Code
    5. Создавать в открытом рабочем пространстве *.cpp файлы


    Подробнее здесь:
    https://code.visualstudio.com/docs/cpp/config-clang-mac
    Ответ написан
    Комментировать
  • Нету кнопки ''Создать проект'' в Microsoft Visual Studio Code. Как это исправить?

    Kubatai
    @Kubatai
    Техник-программист
    В Microsoft Visual Studio Code и не будет кнопки создать проект. Это всего лишь редактор текста с расширениями. Если вы хотите создать проект, то нужно использовать терминал.
    Например, для создания проекта .NET:
    1. Создать пустую папку
    2. Открыть папку в VS Code
    3. В разделе терминал написать dotnet new console


    Более подробно можно почитать тут:
    https://docs.microsoft.com/ru-ru/dotnet/core/tutor...
    Ответ написан
    Комментировать
  • Как найти % загруженности процессора процессом?

    Kubatai
    @Kubatai
    Техник-программист
    Используйте класс PerformanceCounter и Process

    Попробуйте выполнить у себя вот такой код, что бы вам было понятнее как далее работать с этими классами.
    foreach (Process proc in Process.GetProcesses()) {
        using (PerformanceCounter pcProcess = new PerformanceCounter("Process", "% Processor Time", proc.ProcessName)) {
            pcProcess.NextValue();
            System.Threading.Thread.Sleep(1000);
            Console.WriteLine("Process:{0} CPU% {1}", proc.ProcessName, pcProcess.NextValue());    
        }
    }


    Алгоритм будет примерно такой:
    1. Получите экземпляр класса Process для нужного процесса
    2. При помощи PerfomanceCounter'а получите % загрузки CPU
    Ответ написан
  • C#(Unity) - Почему не увеличивается int?

    Kubatai
    @Kubatai
    Техник-программист
    1. Если это копия рабочего кода, то обратите внимание, что переменная объявлена как Triger, а увеличивается переменная Trigger. Возможно у вас несколько переменных с похожими названиями и вы просто увеличиваете не ту.
    2. Если переменная используется несколькими потоками, то используйте interlocked increment.

    Пройдитесь пошагово дебаггером по коду или используйте UnityEngine.Debug.Log в методе GetDamage() рядом с Trigger++ для того что бы в реальном времени видеть что происходит в вашем коде. Возможно какое-либо из условий просто не выполняется.

    P.S. случаев с неработающим инкрементом в сети нет(за исключение i = i++), советую вам все-таки поискать источник, который обнуляет вашу переменную, или заменить код на i += 1 ;)
    Ответ написан
    3 комментария
  • Как восстанавливать энергию через определённое время?

    Kubatai
    @Kubatai
    Техник-программист
    Раз уж вы используете MySQL, то наилучший вариант будет использование MySQL Event Scheduler вместе с полем "Дата последнего обновления энергии".
    По теме есть хорошая статья на хабре и rldp + официальная документация.
    Ответ написан
    3 комментария
  • Какой смысл в boxing/unboxing?

    Kubatai
    @Kubatai
    Техник-программист
    Смотрите это как на инструмент, вытекающий из механизма ООП(а точнее наследования) в языке C#.

    Вот цитата из довольно развёрнутого ответа на такой же вопрос:
    Источник цитаты
    Чтобы иметь унифицированную систему типов и разрешать типы значений иметь совершенно иное представление своих базовых данных от того, как ссылочные типы представляют их базовые данные (например, int - это просто ведро из тридцати двух бит, которое полностью отличается от ссылочного типа).

    Подумайте об этом так. У вас есть переменная o типа object. И теперь у вас есть int, и вы хотите поместить его в o. o является ссылкой на что-то где-то, а int категорически не является ссылкой на что-то где-то (в конце концов, это просто число). Итак, что вы делаете, так это: вы создаете новый object, который может хранить int, а затем вы назначаете ссылку на этот объект на o. Мы называем этот процесс "боксом".

    Итак, если вам не нужно иметь унифицированную систему типов (т.е. ссылочные типы и типы значений имеют очень разные представления, и вам не нужен общий способ "представить" эти два), то вы не нужен бокс. Если вам не нужно, чтобы int представляло их базовое значение (т.е. Вместо этого int тоже были ссылочными типами и просто сохраняли ссылку на их базовое значение), вам не нужен бокс.
    Ответ написан
  • Как программно получить список всех свойств устройства в Device Manager'e?

    Kubatai
    @Kubatai
    Техник-программист
    1. Для отключения используйте USB Mass Storage Device
    2. Для получения более подробной информации о устройствах используйте запрос: "Select * From Win32_USBHub"
    Ответ написан
  • Как создать команду и организовать современный процесс разработки на C#/.NET?

    Kubatai
    @Kubatai
    Техник-программист
    Очень сильно не хватает структуризации.
    Вам нужно поднять систему управления проектами, в которой вы сможете описать ваши проекты. Например, Redmine.(так как у него есть интеграция в svn, в комментариях к задачам будут отображаться коммиты)
    Это поможет вам структурировать ваши проекты, будет некое физическое представление о проекте: список задач/идеи/багов.
    Будет очень сложно, так как людей нужно будет приучить все свои действия отражать в системе, указывать свои трудозатраты. Лидам и менеджерам проектов постоянно создавать и распределять задачи.

    Очень важную роль правильно использование таких систем, что вам очень поможет в scrum.
    Выбираете проект -> Создаете версию на будущий релиз -> Накидываете туда задач(очень важную роль играет правильно выставленная оценка трудозатрат, что позволит не перегружать программистов и оценивать фронт работ)
    Ответ написан
  • DataGridView сохранить изменения в БД - C#?

    Kubatai
    @Kubatai
    Техник-программист
    При использовании ADO.NET у вас не должно быть больших проблем для изменения данных в БД. Посмотрите ссылки по теме:
    Получение и изменение данных в ADO.NET
    Обновление источников данных с помощью объектов Da...

    Еще вариант:
    При нажатии на кнопку "Сохранить" проходите циклом по DataGridView, сравнивайте стройки с оригиналом(по желанию) и составляйте запрос на обновление данных в БД.

    P.S. Для безопасности данных советую запретить выполнение запросов и использовать только процедуры.
    Ответ написан
    Комментировать
  • Кодировка на выходе. Как наладить?

    Kubatai
    @Kubatai
    Техник-программист
    Возможно вам поможет метод HttpUtility.HtmlDecode из пространства имён System.Web.
    Ответ написан
    2 комментария
  • Как совмещать ЯП в проекте?

    Kubatai
    @Kubatai
    Техник-программист
    Вот здесь вкратце написано про методы интеграции C++ в C#. Посмотрите в сторону метода COM Interop + P/Invoke, который описан в статье.
    Ответ написан
  • Какую IDE для разработки вы используете?

    Kubatai
    @Kubatai
    Техник-программист
    Если у вас довольно сильно тормозит студия, то вы можете попробовать использовать Visual Studio Code
    Ответ написан
    Комментировать
  • Как сделать доступным открытый COM порт внутри всего проекта wpf C#?

    Kubatai
    @Kubatai
    Техник-программист
    Самый простой способ в лоб - сделать статический публичный класс с COM-портом и обернуть в методы основные инструменты работы с ним(по желанию).
    public static class COM
    {
    	public static SerialPort CurrentSerial {get; private set; }
    
    	public static InitSerialPort(string text, int baudRate)
    	{
    		CurrentSerial = new SerialPort();
    		CurrentSerial.PortName = text;
    		CurrentSerial.BaudRate = baudRate;
    		CurrentSerial.Open(); 
    	}
    }


    Если у вас много портов, то используйте IList;
    Ответ написан
    Комментировать
  • Как создать такую форму на C# (не WPF) (перенос из DevelNext)?

    Kubatai
    @Kubatai
    Техник-программист
    Если вам интересно создание такой формы на WinForms, то вам поможет плотная работа со стилями встроенных контролов.
    Алгоритм примерно такой:
    1. Сформировать форму, расположив на ней необходимые элементы, подходящие по назначению
    2. Настроить стиль каждого элемента, изменив цвет фона, стиль, шрифт и т.д. Более подробно можно посмотреть в описании Windows Forms. Воспользуйтесь поиском по тексту.
    Ответ написан
    Комментировать
  • Десериализация json в C# с помощью Newtonsoft.Json.dll?

    Kubatai
    @Kubatai
    Техник-программист
    Опишите некий класс Answer(произвольное название), в котором будут хранится свойства с такими же именами и типами, как в вашем json, и при десериализации ссылайтесь на этот класс вот так:
    Answer answer= JsonConvert.DeserializeObject<Answer>(iJson);

    Для быстрого преобразования json-данных в классы c# можно воспользоваться данным онлайн-сервисом:
    json2csharp.com

    Описания классов json от сервиса выше
    // To parse this JSON data, add NuGet 'Newtonsoft.Json' then do:
    //
    //    using QuickType;
    //
    //    var data = GettingStarted.FromJson(jsonString);
    //
    // For POCOs visit quicktype.io?poco
    //
    namespace QuickType
    {
        using System;
        using System.Net;
        using System.Collections.Generic;
    
        using Newtonsoft.Json;
    
        public partial class GettingStarted
        {
            [JsonProperty("measures")]
            public Measures Measures { get; set; }
    
            [JsonProperty("number2")]
            public Number2 Number2 { get; set; }
    
            [JsonProperty("items")]
            public Items Items { get; set; }
    
            [JsonProperty("number1")]
            public Number1 Number1 { get; set; }
    
            [JsonProperty("user")]
            public User User { get; set; }
        }
    
        public partial class Measures
        {
            [JsonProperty("2")]
            public OtherThe1 The2 { get; set; }
    
            [JsonProperty("1")]
            public OtherThe1 The1 { get; set; }
    
            [JsonProperty("3")]
            public OtherThe1 The3 { get; set; }
        }
    
        public partial class OtherThe1
        {
            [JsonProperty("name")]
            public string Name { get; set; }
    
            [JsonProperty("title")]
            public string Title { get; set; }
        }
    
        public partial class Number2
        {
            [JsonProperty("2")]
            public OtherOtherOtherThe1 The2 { get; set; }
    
            [JsonProperty("1")]
            public OtherOtherOtherThe1 The1 { get; set; }
    
            [JsonProperty("3")]
            public OtherOtherOtherThe1 The3 { get; set; }
        }
    
        public partial class OtherOtherOtherThe1
        {
            [JsonProperty("name")]
            public string Name { get; set; }
    
            [JsonProperty("description")]
            public string Description { get; set; }
    
            [JsonProperty("parent")]
            public string Parent { get; set; }
    
            [JsonProperty("title")]
            public string Title { get; set; }
        }
    
        public partial class Items
        {
            [JsonProperty("2")]
            public The1 The2 { get; set; }
    
            [JsonProperty("1")]
            public The1 The1 { get; set; }
    
            [JsonProperty("3")]
            public The1 The3 { get; set; }
        }
    
        public partial class The1
        {
            [JsonProperty("measure")]
            public string Measure { get; set; }
    
            [JsonProperty("number")]
            public string Number { get; set; }
    
            [JsonProperty("foxproID")]
            public string FoxproID { get; set; }
    
            [JsonProperty("name")]
            public string Name { get; set; }
    
            [JsonProperty("producer")]
            public string Producer { get; set; }
    
            [JsonProperty("suodID")]
            public string SuodID { get; set; }
        }
    
        public partial class Number1
        {
            [JsonProperty("2")]
            public OtherOtherThe1 The2 { get; set; }
    
            [JsonProperty("1")]
            public OtherOtherThe1 The1 { get; set; }
    
            [JsonProperty("3")]
            public OtherOtherThe1 The3 { get; set; }
        }
    
        public partial class OtherOtherThe1
        {
            [JsonProperty("description")]
            public string Description { get; set; }
    
            [JsonProperty("name")]
            public string Name { get; set; }
        }
    
        public partial class User
        {
            [JsonProperty("login")]
            public string Login { get; set; }
    
            [JsonProperty("ip")]
            public string Ip { get; set; }
    
            [JsonProperty("number")]
            public long Number { get; set; }
        }
    
    
        public partial class GettingStarted
        {
            public static GettingStarted FromJson(string json) => JsonConvert.DeserializeObject<GettingStarted>(json, Converter.Settings);
        }
    
        public static class Serialize
        {
            public static string ToJson(this GettingStarted self) => JsonConvert.SerializeObject(self, Converter.Settings);
        }
    
        public class Converter
        {
            public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
            {
                MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
                DateParseHandling = DateParseHandling.None,
            };
        }
    }
    Ответ написан
    Комментировать
  • Дизайн десктопных программ на windows?

    Kubatai
    @Kubatai
    Техник-программист
    Посмотрите в сторону Microsoft Virtual Academy. У них есть курсы с описанием принципов нового дизайна Windows 8.1/10. Достаточно быстро пройтись по приложенным к курсам презентациям.

    Ответ написан
    Комментировать
  • Как подключить Awesomium C# WPF?

    Kubatai
    @Kubatai
    Техник-программист
    Возможно вы не подключили нужное пространство имён и используете родной WebControl.
    Попробуйте напрямую указать класс с пространством имён в стиле Awesomium.Windows.Controls webControl1 =...

    Так же вряд ли WebControl будет расположен в пространстве имён Core.

    Посмотрите описание нужного вас класса и где он расположен:
    docs.awesomium.net/?tc=E_Awesomium_Windows_Control...
    Ответ написан
    Комментировать
  • C# Paralllel.ForEach in Parallel.ForEach. Имеет ли смысл?

    Kubatai
    @Kubatai
    Техник-программист
    Была задача, решил делать похожим методом. В итоге при использовании такой структуры без создания второго потока для внутренней Parallel.ForEach было замечено падение производительности при выполнении куска кода. В итоге для моей задачи было решено использовать только один Parallel.ForEach.
    Ответ написан