GUI unity 跨屏显示

8
回复
1820
查看
打印 上一主题 下一主题
[ 复制链接 ]
5熟悉之中
789/1000
排名
3723
昨日变化

11

主题

101

帖子

789

积分

Rank: 5Rank: 5

UID
224968
好友
0
蛮牛币
769
威望
0
注册时间
2017-6-3
在线时间
263 小时
最后登录
2019-6-25
50蛮牛币
unity怎么实现跨屏显示?要能够在两个屏上显示同一段视频

试过多相机多cavas方案,不满足要求。

双屏.png (121.03 KB, 下载次数: 63)

双屏.png
5熟悉之中
789/1000
排名
3723
昨日变化

11

主题

101

帖子

789

积分

Rank: 5Rank: 5

UID
224968
好友
0
蛮牛币
769
威望
0
注册时间
2017-6-3
在线时间
263 小时
最后登录
2019-6-25
来自 2#
楼主 2019-5-28 16:41:39 只看该作者
本帖最后由 小夜曲uuu 于 2019-5-28 16:44 编辑

using System;
using System.Collections;
using System.Runtime.InteropServices;
using UnityEngine;

public class WindowMod : MonoBehaviour
{

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

    int _posX = 0;
    int _posY = 0;
    public int _Txtwith = 800;
    public int _Txtheight = 600;
    void Start()
    {
#if UNITY_EDITOR
#elif UNITY_STANDALONE_WIN
        StartCoroutine("Setposition");
#endif
        //Screen.SetResolution(_Txtwith, _Txtheight, false);                //这个是Unity里的设置屏幕大小,
    }
    IEnumerator Setposition()
    {
        yield return new WaitForSeconds(0.1f);                //不知道为什么发布于行后,设置位置的不会生效,我延迟0.1秒就可以
        Screen.fullScreen = false;
        SetWindowLong(GetForegroundWindow(), GWL_STYLE, WS_POPUP);      //无边框
        bool result = SetWindowPos(GetForegroundWindow(), 0, _posX, _posY, _Txtwith, _Txtheight, SWP_SHOWWINDOW);       //设置屏幕大小和位置
    }
}


把这个脚本挂在场景中就可以了,分辨率可以任意设置。
排名
28927
昨日变化

1

主题

10

帖子

44

积分

Rank: 1

UID
258368
好友
0
蛮牛币
78
威望
0
注册时间
2017-12-7
在线时间
22 小时
最后登录
2019-4-26
板凳
2019-4-1 14:24:45 只看该作者
映射啊  很简单啊
排名
28927
昨日变化

1

主题

10

帖子

44

积分

Rank: 1

UID
258368
好友
0
蛮牛币
78
威望
0
注册时间
2017-12-7
在线时间
22 小时
最后登录
2019-4-26
地板
2019-4-1 14:31:09 只看该作者
1ddfeef 发表于 2019-4-1 14:24
映射啊  很简单啊

分屏就相当于两个屏幕    原来1*2  现在你做成1*4
5熟悉之中
746/1000
排名
5477
昨日变化

9

主题

219

帖子

746

积分

Rank: 5Rank: 5

UID
91563
好友
2
蛮牛币
473
威望
0
注册时间
2015-4-12
在线时间
256 小时
最后登录
2019-6-26
5#
2019-4-2 10:03:28 只看该作者
说具体一点
6蛮牛粉丝
1307/1500
排名
2332
昨日变化

1

主题

154

帖子

1307

积分

Rank: 6Rank: 6Rank: 6

UID
132454
好友
0
蛮牛币
2277
威望
0
注册时间
2015-12-23
在线时间
534 小时
最后登录
2019-6-10
6#
2019-4-2 16:03:59 只看该作者
说的不清楚,怎么回你呢。
6蛮牛粉丝
1070/1500
排名
3392
昨日变化

4

主题

160

帖子

1070

积分

Rank: 6Rank: 6Rank: 6

UID
226406
好友
3
蛮牛币
2254
威望
0
注册时间
2017-6-12
在线时间
460 小时
最后登录
2019-6-26
7#
2019-4-2 17:59:15 只看该作者

2初来乍到
131/150
排名
19947
昨日变化

0

主题

41

帖子

131

积分

Rank: 2Rank: 2

UID
236596
好友
0
蛮牛币
53
威望
0
注册时间
2017-8-8
在线时间
62 小时
最后登录
2019-6-23
8#
2019-4-9 09:24:29 只看该作者
你可以做一个 材质映射,映射另一个摄像机看的度视野
5熟悉之中
789/1000
排名
3723
昨日变化

11

主题

101

帖子

789

积分

Rank: 5Rank: 5

UID
224968
好友
0
蛮牛币
769
威望
0
注册时间
2017-6-3
在线时间
263 小时
最后登录
2019-6-25
9#
楼主 2019-5-28 16:42:59 只看该作者
小夜曲uuu 发表于 2019-5-28 16:41
using System;
using System.Collections;
using System.Runtime.InteropServices;

代码来自一位好心的群友
您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则