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

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

相关推荐
杨丰玮4181 天前
从零手写Java飞机躲障碍游戏|Swing绘图、鼠标跟随、计时器碰撞检测实战(四)
java·游戏·计算机外设
杨丰玮4181 天前
从零手写Java飞机躲障碍游戏|Swing绘图、鼠标跟随、计时器碰撞检测实战(二)
java·游戏·计算机外设
笨鸟先飞的橘猫2 天前
系统设计思维训练——方法论
游戏·思维训练
帅_shuai_2 天前
unity 静态字段内存查找工具
unity·游戏引擎
2601_966563522 天前
SFC游戏下载解压即玩 经典游戏整合版 包含SFC游戏合集1460个
游戏
郝学胜-神的一滴2 天前
[简化版 GAMES 104] 现代游戏引擎 06:从Tick时序到邮局模型,拆解确定性世界的底层密码
开发语言·c++·游戏引擎·图形渲染·软件开发·opengl
鹿野素材屋3 天前
Unity超轻量级中文语音播报,仅5兆大小,无需联网即可使用,适用于弹幕、提示等动态语音播出
unity·游戏引擎
笨鸟先飞的橘猫3 天前
c++游戏后端开源框架学习——wukong(十、lua热更新)
c++·游戏·开源
电子云与长程纠缠4 天前
UE5 Lyra PocketWorld进行3D内容UI预览 - 上
开发语言·学习·3d·ue5·游戏引擎
玖玥拾4 天前
Unity3D RPG 入门项目(八)游戏设置面板、帧率控制、快捷技能药品栏、技能解锁系统
游戏·3d·unity·游戏引擎