Unity3D 官方文档 平台特殊化之Standalone和多显示器的处理

2023-11-19

版本:unity 5.6  语言:C#

 

总起:

Standalone,我一眼看下去的理解就是PC机平台,官方文档中说该平台指的是Mac、Windows和Linux。

 

这篇文章主要讲的是Standalone平台下的设置,通过点击菜单栏的File -> Build Settings -> [切换到Standalone] Player Settings 查看Inspector窗口便可进行设置。

 

Player Settings整体描述:

Player Settings提供了各种选项来帮助你完成最终游戏的出包,虽然说有很多不同的平台,但是大体上的设置会分为以下几个部分:

 

♦ Resolution And Presentation

分辨率和启动前窗口设置,包括了支持的分辨率比例和是否默认全屏启动等选项;

 

♦ Icon

图标,在桌面上显示的默认图标;

 

Splash Image

配置一些游戏启动前的图片,比如公司标志;

 

♦ Publishing Setting

出包设置,比如在android中需要配置的keystore就可以在这里设置;

 

♦ Genetal Setting

一般设置如下图:


 

Company Name:公司名称,用于程序查找预配置文件;


Product Name:产品名称,该名称会在运行时显示在任务栏中,当然它同样起查找预配置文件的作用;

 

Default Icon:默认的图标;

 

Default Cursor:默认的鼠标指针;

 

Cursor Hotspot:鼠标指针图标的偏移。

 

Standalone平台特殊设置:

Resolution and Presentation



Default is Full Screen:游戏默认以全屏方式启动;

 

Default Is Native Resolution:是游戏以默认的分辨率启动,取消勾选后可以强制游戏的分辨率。但是有一点,如果你的游戏已经打包启动过了,那下次再打包强制分辨率就没有意义了,因为Windows会将该应用最后的分辨率记录到注册表中。此时有三种解决方案:

1.改变应用的名称或公司;

2.在代码中直接控制分辨率;

3.使用Unity自带的启动前分辨率设置小窗口。

 

Run in background:在游戏失去焦点时仍旧继续运行不会暂停,反正联网游戏肯定是要勾选的了;

 

Mac Retina Support:可以使游戏在Mac高DPI的屏幕上显示的更加清晰,但是可能会占用更多的资源;

 

Capture Single Screen:在多显示的情况下,游戏的全屏模式会使其他屏幕变黑,该设置在Mac OS X上无效(没法测试,刚组好电脑,第二个屏幕要双十一到,哭);

 

Display Resolution Dislog:在游戏启动前显示一个窗口给玩家调整分辨率,拥有三种选项:

1. Disabled,禁用;

2. Enabled,启用;

3. Hidden by Default,默认禁用,双击应用之后马上按alt可以显示出来。

 

Use Player Log:将所有Debug.Log的信息输入到一个log文件中,默认勾选,当然如果你打算上传应用到Mac App Store,请取消勾选;

 

Resizable Window:允许玩家可以重新调整游戏窗口的大小;

 

Mac App Store Validation:启用Mac App Store的验证;

 

Mac Fullscreen Mode:选择Mac下的全屏模式:

1. Capture Display,用户只有退出游戏的情况下才能切换应用;

2. Fullscreen Window,后面这两个选项应该可以自由切换;

3. Fullscreen Window with Menu Bar and Dock。

 

D3D9 Fullscreen Mode:D3D9下的全屏模式:

1. Exclusive Mode,填充整个屏幕;

2. Fullscreen Window,与上面选项的区别是,该选项会保证屏幕分辨率不会变化,游戏放入一个类似窗口中,如果比例不对,则会显示黑边。

 

D3D11 Fullscreen Mode:D3D11下的全屏模式;

 

Visible in Background:即使进入后台,游戏仍旧正常显示,巫师3就是这个样子的,很难受;

 

Allow Fullscreen Switch:允许游戏在窗口和全屏之间切换,切换快捷键是Alt + Enter;

 

Force Single Instance:保证游戏在一台电脑上只能有一个运行实例,如果想再运行一个就会弹出个错误窗口;

 

Supported Aspect Ratios:分辨率选择窗口的各个分辨率解决方案的配置。

 

Icon



Override for Standalone:勾选了该选项之后,就能使用下面的Texture2D覆盖默认的图标了。

 

Splash Image 



Application Config Dialog:游戏前分辨率选择窗口的图标;

 

Show Splash Screen:在游戏读取时显示Made with Unity的字样,当然该功能只有在专业版中才能取消,点击Preview按钮就能预览显示效果,下面没有截图截到的都是一些该画面的控制,大家有兴趣可以调整试试。

 

Other Settings



Color Space:颜色空间,很重要的选项,手机上只能选择Gamma,而一般3A大作都是Linear,Linear显示效果更加真实,具体等研究渲染那块再说;

 

Auto Graphics API for Windows:自动选择最佳的图形API(如D3D11),如果不勾选,可以自行添加支持的图形API,默认支持D3D11和D3D9;

 

Auto Graphics API for Mac:默认支持Metal和OpenGL;

 

Auto Graphics API for Linux:默认支持OpenGL和Vulkan;

 

Static Batching:静态批处理,一般场景中不动的Object都会设置为静态吧;

 

Dynamic Batching:动态批处理,动态批处理的要求比较严格,比如使用同一图片的对象需要在父物体下连续之类,如果你使用过Fairy GUI,他降低Draw Call的方案就是主动修改各个图片的层级,使其尽可能多的发生动态批处理。

 

GPU Skinning:使用GPU处理骨骼与皮肤联系的过程;

 

Graphics Jobs(Experimental):可以使游戏将一些渲染任务交给其他CPU核心进行处理,增加游戏的处理效率,最近看了AMD CPU和Intel CPU同学可能就知道TX的大部分游戏都是单核的,所以购买多核心CPU对于游戏并没有什么帮助;

 

Virtual Reality Supported:VR游戏支持;

 

Mac App Store Options:Mac应用商城的选项,应用包名、版本……按照需要填写就好;

 

Scripting Backend:后端脚本,对于Standalone平台只能选择Mono2x,就是C#;

 

API Compatibility Level:选择脚本API的版本,现在有两个选项:.Net2.0和.Net2.0 Subset。

 

Disable HW Statistics:不将硬件统计的信息发送给Unity官方,应该只能专业版才能勾选;

 

Scripting Define Symbols:脚本编译时的标志设置;

 

Prebake Collision Meshes:只在build游戏时添加碰撞盒;

 

Keep Loaded Shaders Alive:保证Shader不会被卸载;

 

Preloader Assets:预先读取的Assets列表;

 

Vertex Compression:顶点压缩,选择模型会压缩的数据,比如可以选择everything,然后去掉positions和lightmap UVs。当然每个每个模型在导入时,可以设置独立的该参数,会覆盖掉该选项;

 

Optimize Mesh Data:优化Mesh数据,勾选该选项会移除材质所不需要的Mesh数据,例如tangents、normals、colors、UV。

 

多显示器显示:

在看到这里之前,我一直以为Unity如果得实现多显示,只能通过不同电脑运行同一场景,使用不同相机来实现。

 

没想Unity还支持这样的功能:一个Unity游戏就可以直接在多个显示器上显示一个场景中的不同画面(可惜没显示器,不能测试效果)。

 

OK,让我们来看看,首先注意该功能只支持Standalone平台:

 

1. 新建多个相机,然后注意底下有这样的选项:



Target Display是多少就是显示在那个屏幕上;

 

2. 然后回到Game窗口:



最左上角的下拉菜单可以选择查看第几个屏幕显示的效果;

 

3. 使用脚本控制多个显示的显示:

using UnityEngine;
using System.Collections;

public class DisplayScript : MonoBehaviour
{
    // Use this for initialization
    void Start()
    {
        Debug.Log("displays connected: " + Display.displays.Length);
        // Display.displays[0]是主显示器,默认就是开启的,然后检查当前附加显示器的数量,再将他们激活
        if (Display.displays.Length > 1)
            Display.displays[1].Activate();
        if (Display.displays.Length > 2)
            Display.displays[2].Activate();
    }
    // Update is called once per frame
    void Update()
    {
    }
}

4.一般来说显示器的顺序会根据虚拟坐标的xy来进行排序,但你可以使用-multidisplay命令行标志改变该顺序。

 

个人:

好久没有更新博客了,想着最近正好在研究Android,所以想把该知识点补一补,这一个星期对接Android第三方插件太痛苦。结果回来一看发现Entitas说要更新的结果没下文了,主要也不用了……到时候再说。

 

最近我大概会花两个星期的时间完成Android和IOS的学习,不会学的太深入,但常见的坑总要爬一下,毕竟做的手游,虽然会Unity,但完全不懂对应平台,都不知道出错了怎么应对,完全听天由命。

 

所以接下来会将学习到的一些东西整理成博客发上来,总之要开始更新了!


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity3D 官方文档 平台特殊化之Standalone和多显示器的处理 的相关文章

  • Unity集成Leap Motion

    转载自 http www cocoachina com game 20150716 12625 html 演示视频文章最后 如果你已经熟悉编程的概念 理解并在C 语言方面有一定的经验 并且对面向对象编程思想和设计概念有所熟悉 如果你了解3D
  • unity3D期末作业捕鱼游戏,适合初学者学习使用,包含源程序所有文件

    虚拟现实期末作业捕鱼游戏 免积分下载 点我下载资源 有按钮 背景音乐 可以发射炮弹捕鱼 可以选择难度 可以调节音乐声音大小 有游戏加载进度条 详细情况请看如下动态图 点我下载资源
  • Animator之RootMotion

    Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系 Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移 这个就是通过 applyRootMotion 来达成
  • Unity3D方向键控制人物移动的代码

    代码 var v Input GetAxis Vertical var h Input GetAxis Horizontal transform Translate transform forward Time deltaTime move
  • Unity3D中通过代码修改子物体层级的顺序

    今天有个同事问我如何在程序中修改子物体的层级关系来改变遮挡关系 我给他敲出来一句代码 UI的层级关系是通过渲染表现出来的 在canvas下的物体 排序越靠前的越先被渲染 这样一来就会 被后来渲染的遮挡 总结一下有三句代码是修改子物体的层级的
  • 《Unity Shader入门精要》彩图版免费分享~~~~~

    这书很多地方都要币或者要钱 这里就免费分享了 下面是网盘链接 顺手点个赞或者评论一波呗 下载链接 链接 https pan baidu com s 137Y1nkB6h8HIvKOfwFPnbQ 提取码 f8dw 顺手点个赞 蟹蟹蟹蟹
  • unity3d实现简单的打飞碟游戏

    游戏内容 游戏有n个round 每个round发射10次trial 每个trial的飞碟都可能不同 包括速度角度得分等 使用鼠标进行射击 点中即表示射击成功 游戏要求 使用带缓存的工厂模式来管理飞碟的生产与再利用 工厂使用单例模式 游戏的设
  • untiy的纹理格式介绍

    Desktop RGB Compressed DXT1 压缩的RGB纹理 这是最常见的漫反射纹理格式 4位 像素 32 KB 256x256 RGBA Compressed DXT5 压缩的RGBA纹理 这是漫反射和高光控制纹理的主要格式
  • Unity编辑器扩展——进度条显示通用方法

    在我们使用Unity编辑器扩展做一些批处理的工具时 通常会需要显示一个进度条 这样不会让Unity一直卡住不动 使得使用者不知道当前的进展 那么如何显示进度条呢 涉及的相关API有 EditorUtility ClearProgressBa
  • JPush极光推送Unity插件iOS设备无法获取DeviceToken

    前言 最近在使用JPush进行极光推送 Unity插件GitHub地址https github com jpush jpush unity3d plugin 问题描述 但是发现了一个问题 按照官方文档操作 最终仍然无法获取DeviceTok
  • 【Unity灯光与渲染技术】Global Illumination全局光照

    本系列主要参考Unity灯光与渲染技术教程Unity Lighting And Rendering 同时会加上一点个人实践过程和理解 分割线 这篇文章主要讲全局光照 在看教程的时候就有一个点不是很理解 就是作者开启物体的static这个选项
  • Unity3D Engine Architecture

    原文 http www umingo de doku php id paper mechs and tanks section03 Architecture To better understand the game s software
  • Unity3D之Rigidbody

    目录 常用的Rigidbody属性和方法 rigidbody AddForce rigidbody AddTorque rigidbody velocity rigidbody angularVelocity rigidbody Sleep
  • Unity3D如何修改Button显示的文字以及深入了解Button组件

    在创建了一个Button后 结构如图 先仔细观察一下Button的Inspector视图 发现其中竟然有一个叫Button的脚本组件 新建脚本 代码如下 并将该脚本绑定给Canvas组件 using UnityEngine UI using
  • visual studio:是否统一换行符 提示弹窗是否显示

    工具 选项 环境 文档 加载时检查一致的行尾
  • [3dsMax]2018版下拉菜单项的子菜单无法选中

    软件自身问题 安装更新补丁即可解决 不想更新补丁也可以使用键盘的方向键进行选中 补丁百度云链接 https pan baidu com s 1LDxRFwQnR0GSONuz7wcEfA 提取码 6gpk
  • 对Unity3D 静态批处理和动态批处理的理解

    Draw Call就是CPU调用图像编程接口 像OpenGL或者 DirectX 简单来说 Draw Call就是由CPU发起的一个命令 添加到一个命令缓冲区 当GPU完成了上一次的渲染任务之后 会从命令缓冲区的命令队列中再取出一个并执行
  • unity的LOD组件

    本文转载自http blog csdn net huutu article details 52106468 LOD是Level Of Detais 的简称 多细节层次 在游戏场景中 根据摄像机与模型的距离 来决定显示哪一个模型 一般距离近
  • Unity3d获得android和ios设备的唯一标识

    android为mac地址 ios为advertisingIdentifier 函数都比较简单 网上也搜得到 我也就不多说了 主要是对于我们没做过安卓和IOS开发的人来说 整合进工程有各种的问题 我也就直接上网盘了点击打开链接 代码包里看得
  • NO.6——Unity3D中两种绘制小地图的方法

    在玩游戏时 你经常会发现 在游戏窗口的右上角或者左下角通常会有一个小地图 里边实时反馈角色的移动信息甚至是世界地图 那么这个小地图是如何绘制的呢 我目前掌握了两种方法 一种是以GUI方法重新绘制一个小窗口 另一种是新建一个正交投影的摄像机机

随机推荐

  • [网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一)

    这是作者的系列网络安全自学教程 主要是关于网安工具和实践操作的在线笔记 特分享出来与博友共勉 希望您们喜欢 一起进步 前文分享了Wireshark抓包原理知识 并结合NetworkMiner工具抓取了图像资源和用户名密码 本文将讲解Pyth
  • 1000: A+B的问题

    刷题网站 目录 题目描述 输入格式 输出格式 输入样例 输出样例 完整程序 题目描述 给定两个整数a b 0 lt a b lt 1000 计算a b的值 输入格式 有多组测试数据 每组一行 每行有两个整数a b 输出格式 输出a b的值
  • QT信号和槽连接方式小结

    QT信号和槽 qt信号和槽的连接方式 qt信号和槽的连接方式分为具体分五种 在手册中查看了Qt ConnectionType的枚举类型结果如下 Qt AutoConnection 0 默认 如果信号的发送和接收方在相同线程的情况下 使用Qt
  • 用Python的turtle模块绘制粽子

    导语 在这篇博客中 我们将使用Python的turtle模块来绘制中国传统食物 粽子 粽子是一种由糯米包裹在竹叶中制成的饺子 通常在端午节期间食用 我们将逐步解释代码并解释每个组成部分 以了解如何绘制粽子 准备工作 首先 我们需要导入tur
  • 如何遍历一个栈而且保持原栈不动

    用Iterator public static void printStack Stack
  • 适合于流式播放的DirectShow客户服的编写

    转载请标明是引用于 http blog csdn net chenyujing1234 例子代码 包括客户端与服务端 编译工具 VS2005 http www rayfile com zh cn files a34cb700 74ce 11
  • 免费实用的日记应用:Day One for Mac中文版

    Day One for Mac是一款运行在Mac平台上的日记软件 你可以使用Day One for mac通过快速菜单栏条目 提醒系统和鼓舞人心的信息来编写更多内容 day one mac版还支持Dropbox同步功能 想要day one
  • Linux shell中if [ $? -eq 0 ] 语句作用:判断命令是否执行成功

    shell脚本中 是指上一次命令执行的成功或者失败的状态 如果成功就是0 失败为1 语句if eq 0 是判断if语句的上一个命令执行如果成功就执行if中的语句 否则就执行else中的内容 note 使用时要注意 if后面的中括号 eq 0
  • ES概述与JS实现

    一 ES概述与JS实现 ES是国际标准化组织发布的浏览器脚本语言的标准 全名 ECMAScript ES是JS语言的国际标准 JS是ES的实现 在日常场合 两个词可以互换 ES是JS的子集 它是JS的内容的一部分 一个完整的JS实现是由以下
  • Ubuntu snap 使用大量 /dev/loop 设备

    snap 是 Ubuntu 上的新型软件包管理方式 但也证明 snap 虽然想以新代旧 但明显做的并不好 这里也是 snap 软件包管理的问题 自带的 咱并不想要 这个问题类似于 MacOS 上安装了 img 格式的软件后会有一个挂载点存在
  • 【DETR】3、Conditional DETR

    文章目录 一 Conditional DETR 是怎么被提出来的 二 Conditional DETR 的具体实现 2 1 框架结构 2 2 DETR 的 cross attention 和 Conditional DETR 的 cross
  • 开始编写Spring Boot代码及运行该代码

    编写代码 为了完成应用程序 我们需要创建一个单独的Java文件 Maven默认会编译src main java下的源码 所以你需要创建那样的文件结构 然后添加一个名为src main java Example java的文件 import
  • Java之路:变量作用域

    变量作用域 变量是有作用范围 Scope 的 也即作用域 一旦超出变量的作用域 就无法再使用这个变量 在程序中 变量一定会被定义在某一对大括号中 该大括号所包含的代码区便是这个变量的作用域 按作用域范围划分 变量分为成员变量和局部变量 1
  • Python 爬虫入门基础

    什么是爬虫 爬虫 即网络爬虫 大家可以理解为在网络上爬行的一直蜘蛛 互联网就比作一张大网 而爬虫便是在这张网上爬来爬去的蜘蛛咯 如果它遇到资源 那么它就会抓取下来 想抓取什么 这个由你来控制它咯 比如它在抓取一个网页 在这个网中他发现了一条
  • 1Panel本人目前为止,遇到过的最牛docker管理工具

    1Panel 现代化 开源的 Linux 服务器运维管理面板 1Panel 的功能和优势包括 快速建站 深度集成 Wordpress 和 Halo 域名绑定 SSL 证书配置等一键搞定 高效管理 通过 Web 端轻松管理 Linux 服务器
  • undefined control sequence .....等系列问题

    undefined control sequence includegraphics Undefined control sequence LN col undefined control sequence 等问题 在文章最前面的 docu
  • Jmeter 课程笔记(五)集合点、思考时间和三种断言

    添加集合点 Http请求 右键 定时器 Synchronizing Timer Numberb of Simulated Users to Group by 并发用户数量 默认为0则与线程组的线程数一致 Timeout inmillisec
  • jQuery ajax(自动补全)

    1 Ajax了解 Ajax 是一种用于创建快速动态网页的技术 1 1为什么用Ajax 无刷新 不刷新整个网页 只刷新局部 无刷新的好处 值更新部分页面 有效利用宽带 提高用户体验 2 Ajax用来做什么 用来刷新局部页面 不使用 Ajax
  • 镜之Json Compare Diff

    前言 镜 寓意是凡事都有两面性 Json 对比也不例外 因公司业务功能当中有一个履历的功能 它有多个版本的 JSON 数据需要对比出每个版本的不同差异节点并且将差异放置在一个新的 JSON 当中原有结构不能变动 差异节点使用数组对象的形式存
  • Unity3D 官方文档 平台特殊化之Standalone和多显示器的处理

    版本 unity 5 6 语言 C 总起 Standalone 我一眼看下去的理解就是PC机平台 官方文档中说该平台指的是Mac Windows和Linux 这篇文章主要讲的是Standalone平台下的设置 通过点击菜单栏的File gt