Корректное завершение игры в Unity для разных случаев


Пример корректного завершения игры в Unity

public void Quit() {
#if (UNITY_EDITOR || DEVELOPMENT_BUILD)
    Debug.Log(this.name+" : "+this.GetType()+" : "+System.Reflection.MethodBase.GetCurrentMethod().Name); 
#endif
#if (UNITY_EDITOR)
    UnityEditor.EditorApplication.isPlaying = false;
#elif (UNITY_STANDALONE) 
    Application.Quit();
#elif (UNITY_WEBGL)
    Application.OpenURL("аbout:blank");
#endif
  }
Подробнее

Знак вопроса в TMP_Text TextMeshPro Unity

Если при обработке текста из TMP_InputField, появляется символ вопроса в конце строки (вероятно может быть и другой символ). То дело может быть в том, что TMP_InputField может добавлять символ неразрывного пробела конце строки 0x200B. В самом поле ввода вы его не увидите, но при определенных обстоятельствах при передаче текста может всплыть.

Лечится эта проблема довольно просто, вот так:

myTextMeshProText.text = myTextMeshProText.text.Replace("\u200B", "");
Подробнее

Передача параметров приложению в C#

   Собственно особых проблем с передачей параметров приложению при старте делается это в C# довольно просто, вот так:

static void Main( string[] args)
        {
            if (args.Length == 0)
            { MessageBox.Show("Нет параметров"); }
            else
            { MessageBox.Show("1"); }

            
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new FormMain());

        }


Проблема одна лишь в том, что в С# в рамках проекта может быть не один такой Main и чтобы было ясно какому из них должны быть переданы параметры, необходимо указать объект в: Project > Properties > Application > Startup Object.

Вот и всё!

Подробнее