unity打包exe去边框

标题:Unity中创建无边框窗口的EXE应用程序(详细教程)

简介:本文主要介绍如何在Unity中打包一个无边框的EXE应用程序,让你的项目看起来更专业、时尚。设定无边框窗口可用于创建类似于启动画面、浮动窗口等应用。

l. 准备项目

首先,打开您的Unity项目,确保项目中包含所有所需的场景和资源。测试项目的功能以确保一切正常运行。

2. 设定无边框窗口样式

在打包前,需要首先设置一个无边框的窗口。为此,我们需要创建一个新的C#脚本,如下所示:

步骤1:在Unity项目的Assets目录下创建一个名为"Scripts"的新文件夹,然后在"Scripts"文件夹中创建一个新的C#脚本,命名为"BorderlessWindow"。

步骤2:用以下代码替换"BorderlessWindow"脚本的内容:

```csharp

using System.Runtime.InteropServices;

using UnityEngine;

public class BorderlessWindow : MonoBehaviour

{

[DllImport("user32.dll")]

private static extern uint GetWindowLong(IntPtr hWnd, int nIndex);

[DllImport("user32.dll")]

private static extern int SetWindowLong(IntPtr hWnd, int nIndex, uint dwNewLong);

[DllImport("user32.dll", SetLastError = true)]

private static extern bool SetWindowPos(

IntPtr hWnd, IntPtr hWndInsertAfter, int x, int Y, int cx, int cy, uint uFlags

);

private const int GWL_STYLE = -16;

private const uint WS_POPUP = 0x80000000;

private const uint SWP_SHOWWINDOW = 0x0040;

private const int UPDATE_WIDTH_HEIGHT = 1;

private void Start()

{

Invoke(nameof(RemoveBorder), 0.1f);

}

private void RemoveBorder()

{

#if !UNITY_EDITOR

var hwnd = GetActiveWindow();

if (!hwnd.Equals(IntPtr.Zero))

{

// Set new window style

SetWindowLong(hwnd, GWL_STYLE, WS_POPUP);

// Update window position and size

SetWindowPos(hwnd, IntPtr.Zero, 0, 0, Screen.width, Screen.height, SWP_SHOWWINDOW);

}

#endif

}

[DllImport("user32.dll")]

private static extern IntPtr GetActiveWindow();

}

```

3. 应用无边框窗口脚本

为了使"BorderlessWindow"脚本生效,我们需要将其添加到一个活动的游戏对象中:

步骤1:在Unity的层次结构视图中创建一个新的游戏对象(GameObject)并命名为“BorderlessController”。

步骤2:将刚才创建的"BorderlessWindow"脚本拖放到"BorderlessController"游戏对象上,便可使其生效。

4. 构建设置与打包

现在一切准备就绪,我们可以开始构建并打包我们的无边框窗口应用程序了。

步骤1:在Unity的顶部菜单中选择"File"->"Build Settings"。

步骤2:确保已将所有需要的场景添加到"Scenes In Build"列表中。

步骤3:在"Build Settings"窗口中,选择"Windows"作为目标平台,并选择"x86"或"x86_64"作为架构。

步骤4:点击"Build"按钮,然后选择一个文件夹(或新建一个文件夹)来存放打包好的应用程序。最后,点击"Select Folder"开始构建与打包过程。

完成上述步骤后,我们成功创建了一个无边框窗口的EXE应用程序。双击生成的EXE文件,你将看到一个无边框的窗口呈现在屏幕上。祝你学习愉快!