- 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坐标偏差,修改如下
- 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;
- }
- }
- }
相关推荐
### Unity导出EXE去掉程序边框的知识点详解 #### 一、背景介绍 在使用Unity进行游戏开发或应用程序开发时,我们经常会遇到需要将项目打包成可执行文件(.exe)的情况。对于Windows平台来说,导出为.exe文件是最常见...
Unity打包exe去边框,置顶,透明,透明穿透解决方案,19后版本Edit——ProjectSettings——Player——ResolutionandPresentation——UseDXGIFlipModelSwapchainforD3D11选项设为false. 脚本随便挂,摄像机的Clear Flags...
unity3d outline shader 边框 着色器
Unity3D实现描边框效果 Unity3D实现描边框效果是 Unity3D 游戏引擎中的一种常见技术,它可以将游戏对象的边界框显示出来,从而帮助开发者更好地理解游戏对象的空间关系。本文将详细介绍如何使用 Unity3D 实现描...
Unity3d特效 插件 UIEffect unity3d 亲测可用
首先,"Unity去除边框并置顶程序"指的是在Unity中创建的应用程序能够以全屏无边框模式运行,同时具备窗口置顶或置底的能力。在Unity中,我们通常通过编写C#脚本来实现这一功能,具体涉及到的知识点包括: 1. **全屏...
Unity3D中物体的轮廓显示,此处分为薄边和厚边两种。无入侵式实现。
Unity3D 模型的几种线框 shader。 模型的几种线框shader。 模型的几种线框shader,需要线框化模型的时候使用,比如选中模型线框化,只能看到模型线,看不到三角面 Unity3d Shader
Unity3D是一款强大的跨平台游戏开发引擎,广泛用于创建2D和3D的互动体验,包括游戏、模拟器以及可视化应用。在这个素材包中,包含了各种粒子特效,这些特效是Unity3D游戏和应用中增添视觉魅力的重要元素。 1. 粒子...
Unity3D是一款强大的跨平台游戏开发引擎,广泛用于制作2D和3D游戏、互动体验以及虚拟现实应用。"Unity3d Modern UI Pack 5.34 最新版" 是一个专为Unity3D设计的现代用户界面(UI)资源包,它提供了最新的UI元素和...
Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于游戏、虚拟现实(VR)、增强现实(AR)以及互动媒体等领域。在本项目“UNITY3D 照片墙”中,我们将探讨如何利用Unity3D创建一个动态的照片展示系统,实现照片墙的...
圆角图片边框Shader(Unity Package) 这个Unity Shader包提供了一种简单而有效的方法来为图片添加圆角和边框效果。通过使用这个Shader,你可以轻松地为任何2D图像创建平滑的圆角效果,并在需要时添加自定义颜色和...
这是已经设置好的Unity文件,只需要把脚本 (TransparentWindow) 放入摄像机 (Main Camera) 中加入材质球点击导出 (Build) 运行一下就行了
Unity3D是一款强大的游戏开发引擎,而NGUI(Next-Generation User Interface)是Unity3D中的一款界面插件,用于创建复杂且高效的2D用户界面。这篇带图详解的教程旨在帮助初学者掌握NGUI的基础知识,从创建界面到添加...
在Unity3D游戏开发中,实现物体的描边效果,也称为轮廓边框效果,是一种增强视觉表现力的常见技术。这种效果可以让游戏对象的边界更加突出,增加立体感和艺术风格。通过自定义Shader,我们可以轻松地为3D模型添加...
Unity3D GL 方式划线 Unity3D 中,GL 方式划线是一种常用的绘制线条的方法,特别是在游戏视图中。下面将详细介绍 Unity3D GL 方式划线的实现原理和实现代码。 GL 方式划线的原理 在 Unity3D 中,GL 方式划线使用...
基于Highlighting System插件的鼠标选中物体时,使物体高亮显示。在这个插件的基础上,改动部分没必要的功能,使物体可以高亮显示。直接调用该脚本里的方法就可实现物体高亮显示。
Unity3D是一款强大的跨平台游戏开发引擎,广泛用于创建2D和3D的互动内容,包括游戏、模拟器以及可视化应用。在Unity中,我们通常使用C#作为主要的编程语言,而`System.Drawing`是.NET框架的一个部分,主要用于处理...
Unity3D是一款强大的游戏开发引擎,广泛应用于游戏开发、虚拟现实和增强现实项目。在创建交互式游戏体验时,图形用户界面(GUI)是至关重要的组成部分。本教学课件主要讲解了Unity3D中的GUI系统,特别是关于Button...
在Windows Forms(Winform)应用开发中,有时候我们需要将Unity的3D交互内容集成到桌面应用中,以提供丰富的多媒体体验或游戏功能。本教程将详细介绍如何在Winform应用程序中内嵌UnityWebPlayer控件,并安装必要的...