找回密码
 注册帐号

扫一扫,访问微社区

GUI unity 跨屏显示

8
回复
1854
查看
[ 复制链接 ]
5熟悉之中
795/1000
排名
3723
昨日变化

11

主题

102

帖子

795

积分

Rank: 5Rank: 5

UID
224968
好友
0
蛮牛币
781
威望
0
注册时间
2017-6-3
在线时间
268 小时
最后登录
2019-7-13
2019-4-1 14:13:38 显示全部楼层 阅读模式
50蛮牛币
unity怎么实现跨屏显示?要能够在两个屏上显示同一段视频

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

双屏.png
回复

使用道具 举报

5熟悉之中
795/1000
排名
3723
昨日变化

11

主题

102

帖子

795

积分

Rank: 5Rank: 5

UID
224968
好友
0
蛮牛币
781
威望
0
注册时间
2017-6-3
在线时间
268 小时
最后登录
2019-7-13
楼主 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);       //设置屏幕大小和位置
    }
}


把这个脚本挂在场景中就可以了,分辨率可以任意设置。
回复

使用道具 举报

排名
28928
昨日变化

1

主题

10

帖子

44

积分

Rank: 1

UID
258368
好友
0
蛮牛币
78
威望
0
注册时间
2017-12-7
在线时间
22 小时
最后登录
2019-4-26
2019-4-1 14:24:45 显示全部楼层
映射啊  很简单啊
回复

使用道具 举报

排名
28928
昨日变化

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熟悉之中
764/1000
排名
5478
昨日变化

9

主题

221

帖子

764

积分

Rank: 5Rank: 5

UID
91563
好友
2
蛮牛币
621
威望
0
注册时间
2015-4-12
在线时间
272 小时
最后登录
2019-7-22
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
2019-4-2 16:03:59 显示全部楼层
说的不清楚,怎么回你呢。
回复

使用道具 举报

6蛮牛粉丝
1087/1500
排名
3392
昨日变化

4

主题

160

帖子

1087

积分

Rank: 6Rank: 6Rank: 6

UID
226406
好友
3
蛮牛币
2308
威望
0
注册时间
2017-6-12
在线时间
477 小时
最后登录
2019-7-16
2019-4-2 17:59:15 显示全部楼层
微信图片_20190402175717.png
回复

使用道具 举报

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

0

主题

41

帖子

131

积分

Rank: 2Rank: 2

UID
236596
好友
0
蛮牛币
22
威望
0
注册时间
2017-8-8
在线时间
62 小时
最后登录
2019-6-27
2019-4-9 09:24:29 显示全部楼层
你可以做一个 材质映射,映射另一个摄像机看的度视野
回复

使用道具 举报

5熟悉之中
795/1000
排名
3723
昨日变化

11

主题

102

帖子

795

积分

Rank: 5Rank: 5

UID
224968
好友
0
蛮牛币
781
威望
0
注册时间
2017-6-3
在线时间
268 小时
最后登录
2019-7-13
楼主 2019-5-28 16:42:59 显示全部楼层
小夜曲uuu 发表于 2019-5-28 16:41
using System;
using System.Collections;
using System.Runtime.InteropServices;

代码来自一位好心的群友
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则