using System; using System.Collections; using System.Runtime.InteropServices; using UnityEngine; public class RemoveTheWindowsBorder : MonoBehaviour { [DllImport("user32.dll")] static extern IntPtr SetWindowLong(IntPtr hwnd, int _nIndex, int dwNewLong); [DllImport("user32.dll")] static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags); [DllImport("user32.dll")] static extern IntPtr GetForegroundWindow(); const uint SWP_SHOWWINDOW = 0x0040; const int GWL_STYLE = -16; //邊框用的 const int WS_BORDER = 1; const int WS_POPUP = 0x800000; int _posX = 0; int _posY = 0; int _Txtwith = 1680; int _Txtheight = 1050; void Start() { StartCoroutine("Setposition"); //Screen.SetResolution(_Txtwith, _Txtheight, false); //這個是Unity里的設置屏幕大小, } IEnumerator Setposition() { yield return new WaitForSeconds(0.1f); //不知道為什么發布於行后,設置位置的不會生效,我延遲0.1秒就可以 SetWindowLong(GetForegroundWindow(), GWL_STYLE, WS_POPUP); //無邊框 bool result = SetWindowPos(GetForegroundWindow(), 0, _posX, _posY, _Txtwith, _Txtheight, SWP_SHOWWINDOW); //設置屏幕大小和位置 } }