当前位置:首页 > 移动开发 > 移动开发

Unity3d 除去exe版本的边框

优良自学吧提供Unity3d 除去exe版本的边框,Unity3d 去掉exe版本的边框 [csharp] view plaincopy   using UnityEngine;   using System.Collections;   using System.Runtime.Interop

Unity3d 去掉exe版本的边框
[csharp] view plaincopy
 
  1. using UnityEngine;  
  2. using System.Collections;  
  3. using System.Runtime.InteropServices;  
  4. using System;  
  5.   
  6. public class Test : MonoBehaviour  
  7. {   
  8.     /// <summary>  
  9.     /// 窗口宽度  
  10.     /// </summary>  
  11.     public int winWidth;  
  12.     /// <summary>  
  13.     /// 窗口高度  
  14.     /// </summary>  
  15.     public int winHeight;  
  16.     /// <summary>  
  17.     /// 窗口左上角x  
  18.     /// </summary>  
  19.     public int winPosX;  
  20.     /// <summary>  
  21.     /// 窗口左上角y  
  22.     /// </summary>  
  23.     public int winPosY;  
  24.   
  25.     [DllImport("user32.dll")]  
  26.     static extern IntPtr SetWindowLong(IntPtr hwnd, int _nIndex, int dwNewLong);  
  27.     [DllImport("user32.dll")]  
  28.     static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);  
  29.     [DllImport("user32.dll")]  
  30.     static extern IntPtr GetForegroundWindow();  
  31.   
  32.     const uint SWP_SHOWWINDOW = 0x0040;  
  33.     const int GWL_STYLE = -16;  
  34.     const int WS_BORDER = 1;  
  35.     const int WS_POPUP = 0x800000;  
  36.   
  37.     // Use this for initialization  
  38.     void Start()  
  39.     {  
  40.         winWidth = 610;  
  41.         winHeight = 350;  
  42.         //显示器支持的所有分辨率  
  43.         int i = Screen.resolutions.Length;  
  44.   
  45.         int resWidth = Screen.resolutions[i - 1].width;  
  46.         int resHeight = Screen.resolutions[i - 1].height;  
  47.   
  48.         winPosX = resWidth / 2 - winWidth / 2;  
  49.         winPosY = resHeight / 2 - winHeight / 2;  
  50.   
  51.         SetWindowLong(GetForegroundWindow(), GWL_STYLE, WS_POPUP);  
  52.         bool result = SetWindowPos(GetForegroundWindow(), 0, winPosX, winPosY, winWidth, winHeight, SWP_SHOWWINDOW);  
  53.   
  54.     }  
  55. }  

Unity3d 除去exe版本的边框

Unity3d 除去exe版本的边框

原文地址点击这里

 

测试发现GUI坐标偏差,修改如下

 

[csharp] view plaincopy在CODE上查看代码片
 
  1. using UnityEngine;  
  2. using System.Collections;  
  3. using System.Runtime.InteropServices;  
  4. using System;  
  5.   
  6. public class Test : MonoBehaviour  
  7. {  
  8.     /// <summary>  
  9.     /// 窗口宽度  
  10.     /// </summary>  
  11.     public int winWidth;  
  12.     /// <summary>  
  13.     /// 窗口高度  
  14.     /// </summary>  
  15.     public int winHeight;  
  16.     /// <summary>  
  17.     /// 窗口左上角x  
  18.     /// </summary>  
  19.     public int winPosX;  
  20.     /// <summary>  
  21.     /// 窗口左上角y  
  22.     /// </summary>  
  23.     public int winPosY;  
  24.   
  25.     [DllImport("user32.dll")]  
  26.     static extern IntPtr SetWindowLong(IntPtr hwnd, int _nIndex, int dwNewLong);  
  27.     [DllImport("user32.dll")]  
  28.     static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);  
  29.     [DllImport("user32.dll")]  
  30.     static extern IntPtr GetForegroundWindow();  
  31.   
  32.     [DllImport("User32.dll", EntryPoint = "GetSystemMetrics")]  
  33.     public static extern IntPtr GetSystemMetrics(int nIndex);  
  34.   
  35.     const int SM_CXSCREEN = 0x00000000;  
  36.     const int SM_CYSCREEN = 0x00000001;  
  37.   
  38.     const uint SWP_SHOWWINDOW = 0x0040;  
  39.     const int GWL_STYLE = -16;  
  40.     const int WS_BORDER = 1;  
  41.     const int WS_POPUP = 0x800000;  
  42.   
  43.     public GUIText t;  
  44.   
  45.     // Use this for initialization  
  46.     void Start()  
  47.     {  
  48.         winWidth = 610;  
  49.         winHeight = 350;  
  50.         //当前屏幕分辨率  
  51.         int resWidth = (int)GetSystemMetrics(SM_CXSCREEN);  
  52.         int resHeight = (int)GetSystemMetrics(SM_CYSCREEN);  
  53.   
  54.         winPosX = resWidth / 2 - winWidth / 2;  
  55.         winPosY = resHeight / 2 - winHeight / 2 -1;  
  56.   
  57.         SetWindowLong(GetForegroundWindow(), GWL_STYLE, WS_POPUP);  
  58.         //测试发现左下角坐标为(0,1),修改如下  
  59.         bool result = SetWindowPos(GetForegroundWindow(), 0, winPosX, winPosY, winWidth, winHeight, SWP_SHOWWINDOW);  
  60.         //bool result = SetWindowPos(GetForegroundWindow(), 0, winPosX, winPosY, winWidth, winHeight, SWP_SHOWWINDOW);  
  61.           
  62.     }  
  63.   
  64.     void OnGUI()  
  65.     {  
  66.         if (Input.GetMouseButtonDown(0))  
  67.         {  
  68.             t.text = "X:"+Input.mousePosition.x + " Y:" + Input.mousePosition.y;  
  69.         }  
  70.     }  
  71. }  

 


(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢

最近更新