Unity3D游戏启动分辨率界面

good_lalala 2016-11-11 02:32:20
Unity3D游戏导出来的exe文件怎么打开让他直接显示,而不是先显示分辨率选择界面?

exe文件是已经生成了的,所以不用考虑在unity里面去掉分辨率窗口。

有几家的VR头盔都有直接在exe文件上面右键,右键菜单有在头盔里面运行,
选择后游戏可以直接显示而不用弹出分辨率选择界面。
...全文
3805 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
good_lalala 2016-12-27
  • 打赏
  • 举报
回复
不知道还有什么更好的办法
good_lalala 2016-12-27
  • 打赏
  • 举报
回复
引用 6 楼 zq1564171310 的回复:
程序我都自己测过了,可以调用,但是还有n多异常没有处理,你自己看着办了。
不知道没有什么更好的办法
zq1564171310 2016-11-23
  • 打赏
  • 举报
回复
程序我都自己测过了,可以调用,但是还有n多异常没有处理,你自己看着办了。
zq1564171310 2016-11-23
  • 打赏
  • 举报
回复
如果你想装b一点,可以用C#调用外部程序,然后模拟点击play按钮

System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Windows.Forms;

namespace Test20161123
{
    class Program
    {
        [DllImport("user32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)]
        static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        [DllImport("user32.dll", EntryPoint = "FindWindowEx", CharSet = CharSet.Auto)]
        extern static IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
        [DllImport("User32.dll", EntryPoint = "SendMessage")]
        private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);

        [DllImport("user32.dll", EntryPoint = "PostMessage", CallingConvention = CallingConvention.Winapi)]
        static extern bool PostMessage(IntPtr hwnd, int msg, uint wParam, uint lParam);


        [STAThread]
        static void Main(string[] args)
        {
            string path = "C:/xxx.exe(应用程序路径)";
            Process p = Process.Start(path);
            if (p == null)
            {
                MessageBox.Show("路径不能为空!");
            }
            IntPtr mainWindows = FindMainWindowHandle("xxx(你的应用程序窗体)", 100, 25);
            Console.WriteLine("Handle to main window is " + mainWindows);

            //有名字控件句柄
            IntPtr butt = FindWindowEx(mainWindows, IntPtr.Zero, "Button", "Play!");//这里找play按钮
            if (butt == IntPtr.Zero)
            {
                MessageBox.Show("没找到Play按钮!");
            }

            SendMessage(butt, 0xF5, butt, null); //给win发送点击按钮消息
        }

        //通过索引查找相应控件句柄
        static IntPtr FindWindowByIndex(IntPtr hwndParent, int index)
        {
            if (index == 0)
            {
                return hwndParent;
            }
            else
            {
                int ct = 0;
                IntPtr result = IntPtr.Zero;
                do
                {
                    result = FindWindowEx(hwndParent, result, null, null);
                    if (result != IntPtr.Zero)
                    {
                        ++ct;
                    }
                } while (ct < index && result != IntPtr.Zero);
                return result;
            }
        }

        //获得待测程序主窗体句柄
        private static IntPtr FindMainWindowHandle(string caption, int delay, int maxTries)
        {
            IntPtr mwh = IntPtr.Zero;
            bool formFound = false;
            int attempts = 0;
            while (!formFound && attempts < maxTries)
            {
                if (mwh == IntPtr.Zero)
                {
                    Thread.Sleep(delay);
                    ++attempts;
                    mwh = FindWindow(null, caption);
                }
                else
                {
                    Console.WriteLine("主窗体没找到");
                    formFound = true;
                }
            }

            if (mwh == IntPtr.Zero)
                throw new Exception("主窗体没找到");
            else
                return mwh;
        }
    }
}

zq1564171310 2016-11-23
  • 打赏
  • 举报
回复
好像批处理可以

Dim Shell 
Set Shell=WScript.CreateObject("WScript.Shell") 
Shell.Run "C:/1.exe(这里是你的exe的路径)"  
WScript.Sleep 1000 
Shell.SendKeys "{ENTER}"
保存到1.vbs中,运行1.vbs试试,如果觉得直接暴露vbs不爽,可以用unity写个demo封装下
good_lalala 2016-11-21
  • 打赏
  • 举报
回复
引用 1 楼 zq1564171310 的回复:
resolution 是选分辨率和屏幕大小 display resolution 选disable你选的分辨率和屏幕大小才起作用,才能禁止掉选分辨率的那一步
Unity里面去掉知道 就是别人做好的unity游戏打开老是有分辨率窗口,想知道有没有办法加启动参数或者用配置文件去掉
zq1564171310 2016-11-11
  • 打赏
  • 举报
回复
至于在VR里面,似乎我没听过怎么去掉,有的话同问
zq1564171310 2016-11-11
  • 打赏
  • 举报
回复
resolution 是选分辨率和屏幕大小 display resolution 选disable你选的分辨率和屏幕大小才起作用,才能禁止掉选分辨率的那一步

2,586

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧