unity 程序只显示在拓展屏

项目中遇到一个情况,客户想在副屏上显示程序,在主屏幕上显示桌面内容,操作主频不影响程序。

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

public class WindowShow : MonoBehaviour
{
	[HideInInspector]
	//导入设置窗口函数
	[DllImport("user32.dll")]
	static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
	//函数功能:设置一个窗口显示的位置,大小,以及在空间中Z轴的位置情况。
    //	hWnd 要设置的窗口,本文就是指要显示在扩展屏上的窗口
    //hWndInsetAfter 是窗口在空间Z周上的位置,显示在其他窗口的前或者后(当值为-1,窗口显示在所有窗口最前面)
    //x 窗口在整个大屏上距离左边的X轴位置起始点
    //y 窗口在整个大屏上距离左边的Y轴位置起始点
    //cx 扩展屏宽度,也就是窗口的width
    //cy 扩展屏高度,也就是窗口的height
    //GetActiveWindow()
    //函数功能:得到当前程序的线程的活动窗口
	//导入当前活动窗口
	[DllImport("user32.dll")]
	static extern IntPtr GetActiveWindow();
	//显示窗口
	const uint SWP_SHOWWINDOW = 0x0040;
	//扩展屏在整个大屏的X起始位置 (也就是你主屏的宽度)
	int x = 1024;
	//扩展屏在整个大屏的Y起始位置
	int y = 0;
	//扩展屏宽度 (程序的宽)
	int width = 1024;
	//扩展屏高度(程序的高)
	int height = 576;
	public void ReadX(string path)
	{
        if (File.Exists(path))
        {
            StreamReader sr = new StreamReader(path);
            string str = sr.ReadToEnd();
            x = int.Parse(str);
            Debug.Log("X:" + str);
            sr.Close();
        }

    }
	private void Awake()
    {
		//ReadX(Application.streamingAssetsPath+ "/主显示器宽.txt");
		
	}
    void Start()
	{
		SetWindowPos(GetActiveWindow(), -1, x, y, width, height, SWP_SHOWWINDOW);
	}
}```

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows系统上无法全显示Unity程序可能有多种原因。以下是一些可能的原因和解决方法: 1. 分辨率设置:检查Unity项目的游戏窗口分辨率设置是否正确。在Unity编辑器中,选择"Edit" -> "Project Settings" -> "Player",在"Resolution and Presentation"部分检查“Default Is Full Screen”和“Default Screen Width”以及“Default Screen Height”设置是否正确。 2. 幕分辨率不匹配:检查你的幕分辨率是否与Unity项目的分辨率设置相匹配。如果分辨率不匹配,可能导致游戏无法全显示。你可以尝试调整Windows系统的幕分辨率,以使其与Unity项目的分辨率设置相匹配。 3. 窗口模式设置:检查Unity项目的游戏窗口模式设置是否正确。在Unity编辑器中,选择"Edit" -> "Project Settings" -> "Player",在"Resolution and Presentation"部分检查“Default Is Full Screen”和“Run In Background”设置是否正确。 4. 外部应用程序干扰:某些外部应用程序可能会干扰Unity程序的全显示。尝试关闭其他正在运行的应用程序,然后重新启动Unity程序,看看是否可以全显示。 5. 显卡驱动问题:更新你的显卡驱动程序可能有助于解决全显示问题。访问显卡制造商的官方网站,下载并安装最新的显卡驱动程序。 如果以上解决方法仍然无法解决问题,可能需要进一步调查特定的系统环境和Unity项目设置。你可以尝试在Unity社区论坛或相关的开发者论坛上寻求帮助,以获取更具体的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值