【Unity】改变游戏运行时Window的窗口标题

【Unity】改变游戏运行时Window的窗口标题

零、需求

Unity打包好的Windows程序,启动后如何更改窗口标题?因为看着英文的感觉不太好,故有此想法。什么?你说为啥不改项目产品名?产品名会被写到文件夹名中,感觉后面可能会有问题......

壹、解决方案

代码如下:

cs 复制代码
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)来设置标题就好啦,要是不想写代码,也可以在面板里设置,默认会帮你设置一次标题窗口的~

好,以上就是全部内容,点个赞再走呗?不会的评论区见~ (◍•ᴗ•◍)❤

相关推荐
中二病码农不会遇见C++学姐20 小时前
系列一:2D 游戏 UI 组件库 (Game UI Asset Kit)提示词详解
游戏·ui
地狱为王20 小时前
Unity使用Spleeter分离人声和伴奏
unity·游戏引擎·spleeter
云起SAAS1 天前
实时双人对战游戏平台你画我猜知识竞猜斗兽棋五子棋H5抖音快手微信小程序看广告流量主开源
游戏·ai编程·看广告变现轻·实时双人对战游戏平台·你画我猜知识竞猜斗兽棋五子棋
在路上看风景1 天前
26. Texture和Sprite
unity
上海云盾第一敬业销售1 天前
游戏盾在保障游戏安全方面的独特优势
网络·安全·游戏
程序员敲代码吗1 天前
C++运行库修复指南:解决游戏办公软件报错问题
开发语言·c++·游戏
中二病码农不会遇见C++学姐1 天前
文明6 Mod入门:三分钟学会用SQL制作第一个修改器
sql·游戏
lllljz1 天前
Blender导出模型到Unity或UE5引擎材质丢失模型出错
unity·ue5·游戏引擎·blender·材质
微祎_1 天前
Flutter for OpenHarmony:构建一个 Flutter 点击狂热游戏,深入解析响应式交互、动态反馈与高性能状态管理
flutter·游戏·交互
张艾拉 Fun AI Everyday1 天前
Sparkli AI:塑造 5-12 岁孩子“金钱观”和“商业思维”的闯关游戏
人工智能·游戏