Unity如何游戏运行时窗口以实现?

摘要:【Unity】改变游戏运行时Window的窗口标题 零、需求 Unity打包好的Windows程序,启动后如何更改窗口标题?因为看着英文的感觉不太好,故有此想法。什么?你说为啥不改项目产品名?产品名会被写到文件夹名中,感觉后面可能会有问题…
【Unity】改变游戏运行时Window的窗口标题 零、需求 Unity打包好的Windows程序,启动后如何更改窗口标题?因为看着英文的感觉不太好,故有此想法。什么?你说为啥不改项目产品名?产品名会被写到文件夹名中,感觉后面可能会有问题…… 壹、解决方案 代码如下: using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using UnityEngine; public class ChangeWindowTitle : MonoBehaviour { /// <summary> /// 记录当前的窗口标题 /// </summary> public static string TitleText = ""; /// <summary> /// 窗口句柄,只能获取一次,后面获取的无效 /// </summary> private static System.IntPtr windowHandle; /// <summary> /// 是否已经获得窗口句柄 /// </summary> private static bool isGotWindowHandle = false; [Header("Windows窗口标题设置")] [Tooltip("窗口标题文字")] public string title = "窗口"; [Tooltip("是否自动设置窗口标题文字")] public bool autoSet = true; [SerializeField] [Header("标题设置状态")] [Tooltip("标题是否已经设置过至少一次")] private bool isSet = false; #if UNITY_STANDALONE_WIN [DllImport("user32.dll")] private static extern System.IntPtr FindWindow(string className, string windowName); [DllImport("user32.dll", CharSet = CharSet.Unicode, SetLastError = true)] private static extern bool SetWindowText(System.IntPtr hwnd, string title); #endif void Update() { if (autoSet && !isSet) { setTitle(title); } } public void setTitle(string title) { isSet = true; #if UNITY_STANDALONE_WIN TitleText = title; if(!isGotWindowHandle) { // 获取窗口句柄 windowHandle = FindWindow(null, Application.productName); isGotWindowHandle = true; } // 设置新标题 SetWindowText(windowHandle, title); #endif } } 要注意的都写在注释里了(应该)。把它挂到对象上,直接调用public void setTitle(string title)来设置标题就好啦,要是不想写代码,也可以在面板里设置,默认会帮你设置一次标题窗口的~ 好,以上就是全部内容,点个赞再走呗?不会的评论区见~ (◍•ᴗ•◍)❤