查看: 1459|回复: 8
打印 上一主题 下一主题

[其他] 设定unity3d执行程序运行后的屏幕大小和屏幕坐标

[复制链接]

2317

主题

54

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
20645
精华
62

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-8-31 23:33:18 |只看该作者 |倒序浏览


            算不是一篇完整的教程了,其实就是一段功能实现代码,平时大家可能也不怎么会用到,但如果是用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);
         

           }
         

           }
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏1 支持支持0 反对反对0
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-9-1 04:47:13 |只看该作者
感谢分享!
回复

使用道具 举报

无效楼层,该帖已经被删除
无效楼层,该帖已经被删除

2

主题

2

听众

972

积分

初级设计师

Rank: 3Rank: 3

纳金币
14
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2014-9-1 09:51:08 |只看该作者
another post thnx
回复

使用道具 举报

0

主题

2

听众

3482

积分

中级设计师

Rank: 5Rank: 5

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2014-9-3 11:19:12 |只看该作者
非常感谢!!!!!!!!
回复

使用道具 举报

0

主题

1

听众

1018

积分

助理设计师

Rank: 4

纳金币
19
精华
0
7#
发表于 2014-9-3 14:03:20 |只看该作者
another post thnx
回复

使用道具 举报

16

主题

1

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
3
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

8#
发表于 2014-9-6 15:05:25 |只看该作者
不错, 学习了
回复

使用道具 举报

heise    

4

主题

3

听众

4249

积分

中级设计师

Rank: 5Rank: 5

纳金币
105
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

9#
发表于 2014-9-7 01:52:28 |只看该作者

谢谢分享,支持!!!!!!!!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-9-22 05:37 , Processed in 0.168051 second(s), 33 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部