• Как задействовать функцию OnTriggerEnter() на нескольких игровых объектов?

    @igorloadgame
    Смотри при соприкосновении триггеров поднимай самого человечка (такой был в самой игре как у вас не знаю) и массив кубов и создавайте копию куба с самого низу, а при потере куба отнимай куб и опускай человечка и массив кубов
    Ответ написан
    1 комментарий
  • Объясните работу get и set в c#?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Гет возвращает значение Сет устанавливает. Разница с переменной ты можешь что то делать. Например проверять на валидность
    Ответ написан
    Комментировать
  • Объясните работу get и set в c#?

    get и set во время компиляции просто превращаются в два метода.
    Если это автосвойства, то ещё и поле добавляется.
    имена у них будут get_НазваниеСвойства и set_НазваниеСвойства.
    Ответ написан
    Комментировать
  • Объясните работу get и set в c#?

    @hello_my_name_is_dany
    Backend Developer (Node.js, PHP, C#)
    Конструкция свойств get-set генерирует скрытые (для синтаксиса) методы и поле
    Например,
    class Human
    {
        public string Name { get; set }
    }

    преобразуется на уровне компилятора в
    class Human
    {
        private string _name;
    
        public string GetName()
        {
            return this._name;
        }
    
        public void SetName(string value)
        {
            this._name = value;
        }
    }


    Но get и set можно переопределять, но тогда поле не генерируется и надо самому определить (или использовать существующее, в зависимости от логики)
    Например,
    class Human
    {
        private string _phone;
    
        public string Phone
        {
            get => "Human phone" + this._phone;
            set =>
            {
                this._phone = value;
                if (value[0] != '+') this._phone = "+" + this._phone;
            }
        }
    }

    Преобразуется в
    class Human
    {
        private string _phone;
    
        public string GetPhone()
        {
            return "Human phone: " + this._phone;
        }
    
        public void SetPhone(string value)
        {
            this._phone = value;
            if (value[0] != '+') this._phone = "+" + this._phone;
        }
    }


    Ну и обращения к свойствам в качестве полей заменяется на вызов метода
    var human = new Human();
    human.Name = "John";
    Console.WriteLine(human.Name);

    преобразуется в
    Human human = new Human();
    human.SetName("John");
    Console.WriteLine(human.GetName());


    А если не указать get или set, то соответственно не будет генерироваться метод на чтение или запись
    Ответ написан
    Комментировать
  • Как вытащить все значения некоторого поля из json на C#?

    Десериализуешь json, потом делаешь data.Select(x=>x.Name).ToArray()
    // Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse); 
        public class Hotel    {
            public int id { get; set; } 
            public int countryId { get; set; } 
            public string country { get; set; } 
            public string countryUrl { get; set; } 
            public int regionId { get; set; } 
            public string region { get; set; } 
            public string regionUrl { get; set; } 
            public string hotelType { get; set; } 
            public string name { get; set; } 
            public string comment { get; set; } 
            public string imageFolder { get; set; } 
            public string imageHotel { get; set; } 
            public string minPrice { get; set; } 
            public bool showHalfPrice { get; set; } 
            public string minPriceCurrency { get; set; } 
            public List<object> restTypes { get; set; } 
            public bool tour3D { get; set; } 
            public string video { get; set; } 
            public bool tezRecommend { get; set; } 
            public bool tezPriority { get; set; } 
            public bool tezOnly { get; set; } 
            public string price { get; set; } 
        }
    
        public class Root    {
            public Hotel[] hotels { get; set; } 
        }


    var data = JsonConvert.DeserializeObject<Root>(jsonText);
    var names = data.hotels.Select(x=>x.name).ToArray();

    Используйте Newtonsoft.Json или System.Text.Json
    Ответ написан
    1 комментарий
  • Как сделать сохранение покупки в Unity?

    YuriyVorobyov1333
    @YuriyVorobyov1333
    Software Developer
    Зачем после каждого условия ";" ?
    Уберите их:
    if (Score.scoreAmount >= 30) 
    {
    	if (PlayerPrefs.HasKey(CostWin, 1)) 
    	{
    		if (PlayerPrefs.GetInt(buy) == 0) 
    		{
    			Score.scoreAmount -= 30;
    			PlayerPrefs.SetInt("coins", Score.scoreAmount);
    			CostW.SetActive(false);
    			PlayerPrefs.SetInt("buy", 1);
    		}
    	}
    
    	else
    	{
    		Score.scoreAmount -= 30;
    		PlayerPrefs.SetInt("coins", Score.scoreAmount);
    		CostW.SetActive(false);
    		PlayerPrefs.SetInt("buy", 1);
    	}
    }
    Ответ написан
    Комментировать
  • Как использовать переменные или классы в другом файле?

    //1 файл
    namespace File1
    {
        public class Class
        {
         public static string Data ;//переменные с которыми необходимо работать 
    }
    }

    using File1;
    //подключение пространства имен необходимого //файла
    namespace ConApp{
    class Program(){
    void Main(){
    Class.Data="Hellow word";//внести необходимые значения
    Console.Write(Class.Data);//либо получить значение переменной
    }
    }
    }
    Ответ написан
    Комментировать
  • В чем разница switch expression и switch statement?

    switch-statement - это обычный switch, который
    int result;
    switch(something) {
    case "a":
      result = 1;
      break;
    case "b":
      result = 2;
      break;
    default:
      result = 3;
      break;
    }

    switch-expression - это новый вид управляющей конструкции, который добавили в C# 8
    var result = something switch {
        "a" => 1,
        "b" => 2,
         _ => 3
    }

    Его особенности по сравнению с switch-statement:
    1. Он exhaustive - это значит, что компилятор заставит вас обработать все возможные варианты, в отличие от switch-statement
    2. Это выражение. Это значит, что результат его выполнения можно положить в переменную.

    switch-expression относится к switch-statement также, как тернарный оператор относится к if.

    Подробнее читать тут:
    https://docs.microsoft.com/en-us/dotnet/csharp/lan...
    https://docs.microsoft.com/en-us/dotnet/csharp/lan...
    Ответ написан
    2 комментария
  • Как лучше учить c# для unity и атрибуты?

    Сначала изучи фичи шарпа, чтобы легко понимать документацию юнити. А потом уже сам юнити. Тогда глупых вопросов возникать не будет
    Ответ написан
    1 комментарий
  • Как лучше учить c# для unity и атрибуты?

    @Mazzeich
    Я считаю, что как и в любой другой сфере, лучше делать это совместно, и практикуясь на простеньком, но настоящем проекте. Берёшь условный дудлджамп и постепенно танцуешь на всевозможных граблях -- закрепляешь код из интернета практикой, и тем же закрепляешь познания в движке как инструменте. А там уж, если захочешь, полезешь под капот и шарпа, и юнити.
    Затем либо допиливаешь проект в портфель, либо забрасываешь и начинаешь с чистого листа и на репит
    Ответ написан
    Комментировать