您的位置:首页 > 移动开发 > Unity3D

【Unity3D自学记录】Unity3D去掉exe版本的边框

2014-08-15 15:49 183 查看
[csharp] view
plaincopyprint?

using UnityEngine;  

using System.Collections;  

using System.Runtime.InteropServices;  

using System;  

  

public class Test : MonoBehaviour  

{   

    /// <summary>  

    /// 窗口宽度  

    /// </summary>  

    public int winWidth;  

    /// <summary>  

    /// 窗口高度  

    /// </summary>  

    public int winHeight;  

    /// <summary>  

    /// 窗口左上角x  

    /// </summary>  

    public int winPosX;  

    /// <summary>  

    /// 窗口左上角y  

    /// </summary>  

    public int winPosY;  

  

    [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;  

  

    // Use this for initialization  

    void Start()  

    {  

        winWidth = 610;  

        winHeight = 350;  

        //显示器支持的所有分辨率  

        int i = Screen.resolutions.Length;  

  

        int resWidth = Screen.resolutions[i - 1].width;  

        int resHeight = Screen.resolutions[i - 1].height;  

  

        winPosX = resWidth / 2 - winWidth / 2;  

        winPosY = resHeight / 2 - winHeight / 2;  

  

        SetWindowLong(GetForegroundWindow(), GWL_STYLE, WS_POPUP);  

        bool result = SetWindowPos(GetForegroundWindow(), 0, winPosX, winPosY, winWidth, winHeight, SWP_SHOWWINDOW);  

  

    }  

}  





原文地址点击这里

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

[csharp] view
plaincopyprint?





using UnityEngine;  

using System.Collections;  

using System.Runtime.InteropServices;  

using System;  

  

public class Test : MonoBehaviour  

{  

    /// <summary>  

    /// 窗口宽度  

    /// </summary>  

    public int winWidth;  

    /// <summary>  

    /// 窗口高度  

    /// </summary>  

    public int winHeight;  

    /// <summary>  

    /// 窗口左上角x  

    /// </summary>  

    public int winPosX;  

    /// <summary>  

    /// 窗口左上角y  

    /// </summary>  

    public int winPosY;  

  

    [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();  

  

    [DllImport("User32.dll", EntryPoint = "GetSystemMetrics")]  

    public static extern IntPtr GetSystemMetrics(int nIndex);  

  

    const int SM_CXSCREEN = 0x00000000;  

    const int SM_CYSCREEN = 0x00000001;  

  

    const uint SWP_SHOWWINDOW = 0x0040;  

    const int GWL_STYLE = -16;  

    const int WS_BORDER = 1;  

    const int WS_POPUP = 0x800000;  

  

    public GUIText t;  

  

    // Use this for initialization  

    void Start()  

    {  

        winWidth = 610;  

        winHeight = 350;  

        //当前屏幕分辨率  

        int resWidth = (int)GetSystemMetrics(SM_CXSCREEN);  

        int resHeight = (int)GetSystemMetrics(SM_CYSCREEN);  

  

        winPosX = resWidth / 2 - winWidth / 2;  

        winPosY = resHeight / 2 - winHeight / 2 -1;  

  

        SetWindowLong(GetForegroundWindow(), GWL_STYLE, WS_POPUP);  

        //测试发现左下角坐标为(0,1),修改如下  

        bool result = SetWindowPos(GetForegroundWindow(), 0, winPosX, winPosY, winWidth, winHeight, SWP_SHOWWINDOW);  

        //bool result = SetWindowPos(GetForegroundWindow(), 0, winPosX, winPosY, winWidth, winHeight, SWP_SHOWWINDOW);  

          

    }  

  

    void OnGUI()  

    {  

        if (Input.GetMouseButtonDown(0))  

        {  

            t.text = "X:"+Input.mousePosition.x + " Y:" + Input.mousePosition.y;  

        }  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity3d