【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;
}
}
}
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 去掉exe版本的边框
- Unity3d 去掉exe版本的边框
- Unity3d 去掉exe版本的边框
- Unity3d 去掉exe版本的边框
- 【Unity3D自学记录】利用WinRAR的自解压功能单文件发布Unity的PC版本包
- Unity3D 去掉 exe 边框
- 【Unity3D自学记录】C#语法笔记
- 【Unity3D自学记录】Resources加载
- 【Unity3D自学记录】获取WWW下载的进度
- 【Unity3D自学记录】NGUI之编写跟随鼠标代码
- 【Unity3D自学记录】SendMessage传递多个参数
- 【Unity3D自学记录】遮挡剔除的简单教程
- 【Unity3D自学记录】重要的函数
- 【Unity3D自学记录】failed to update unity web player解决办法。
- 【Unity3D自学记录】Unity中的物体缩放-Android和PC平台
- openWRT自学---自己编译的第一个 backfire10.03 版本的过程记录 --- 实际是由于下载了错误的backfire源码包导致的
- 【Unity3D自学记录】Debug.Log()无法正常显示解决方法
- 【Unity3D自学记录】将文字复制至系统剪切板
- 【Unity3D自学记录】关于Animation(动画)倒着播放方法
- 【Unity3D自学记录】AssetBundles的使用