纳金网

标题: 设定unity3d执行程序运行后的屏幕大小和屏幕坐标 [打印本页]

作者: 王者再临    时间: 2014-8-31 23:33
标题: 设定unity3d执行程序运行后的屏幕大小和屏幕坐标


            算不是一篇完整的教程了,其实就是一段功能实现代码,平时大家可能也不怎么会用到,但如果是用unity3d来做一些投影项目的话,此段代码就是非常的有用了。此段代码主要的功能就是可以精确方便的设定发布后的unity3d文件执行时在显示屏幕上的坐标和大小,且可以以无边框非全屏的模式显示。下面是C#代码:
         

           using System;
         

           using System.Collections;
         

           using System.Runtime.Interopservices;
         

           using System.Diagnostics;
         

           using UnityEngine;
         

           public class WindowMod: MonoBehaviour
         

           {
         

           public Rect screenPosition;
         

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

           // not used rigth now
         

           //const uint SWP
           
            _
           
           NOMOVE = 0x2;
         

           //const uint SWP
           
            _
           
           NOSIZE = 1;
         

           //const uint SWP
           
            _
           
           NOZORDER = 0x4;
         

           //const uint SWP
           
            _
           
           HIDEWINDOW = 0x0080;
         

           const uint SWP
           
            _
           
           SHOWWINDOW = 0x0040;
         

           const int GWL
           
            _
           
           STYLE = -16;
         

           const int WS
           
            _
           
           BORDER = 1;
         

           void Start ()
         

           {
         

           SetWindowLong(GetForegroundWindow (), GWL
           
            _
           
           STYLE, WS
           
            _
           
           BORDER);
         

           bool result = SetWindowPos (GetForegroundWindow (), 0,(int)screenPosition.x,(int)screenPosition.y, (int)screenPosition.width,(int) screenPosition.height, SWP
           
            _
           
           SHOWWINDOW);
         

           }
         

           }

作者: hyui    时间: 2014-9-1 04:47
感谢分享!
作者: texfill    时间: 2014-9-1 09:51
another post thnx
作者: shenyg77    时间: 2014-9-3 11:19
非常感谢!!!!!!!!
作者: leductai2014    时间: 2014-9-3 14:03
another post thnx
作者: 我不再年轻    时间: 2014-9-6 15:05
不错, 学习了
作者: heise    时间: 2014-9-7 01:52

谢谢分享,支持!!!!!!!!!!!!!




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5