用unity开发VR游戏分辨率unity 代码设置分辨率为多少

unity3d 制作像素级射击游戏(一) VR开发教程
&今天小编为大家分享一下,如何在unity3d 中写一个像素级的射击类游戏。
好吧!废话不多讲,我直接上图操作!
1.新建一个unity3d 项目,导入需要的图片、声音、动画等资源文件(PS:素材都是从网上DownLoad下来的);
2.根据需要的图片,制作对应的动画文件,例如鱼的动画,猫的动画等;
相关用到的动画类文件:
①CatAnimationController.cs 代码如下:
using UnityE
using System.C
public class CatAnimationController : MonoBehaviour
&&&&&&&&public SpriteAnimationController leftWalk = null;
&&&&&&&&public SpriteAnimationController rightWalk = null;
&&&&&&&&public SpriteAnimationController upWalk = null;
&&&&&&&&public SpriteAnimationController failed = null;
&&&&&&&&public F
&&&&&&&&[HideInInspector]
&&&&&&&&public Vector3
&&&&&&&&public void MoveRight ()
&&&&&&&&&&&&&&&&rightWalk.enabled = true;
&&&&&&&&&&&&&&&&direction = Vector3.
&&&&&&&&public void MoveLeft ()
&&&&&&&&&&&&&&&&leftWalk.enabled = true;
&&&&&&&&&&&&&&&&direction = Vector3.
&&&&&&&&public void LookUp ()
&&&&&&&&&&&&&&&&upWalk.enabled = true;
&&&&&&&&&&&&&&&&direction = Vector3.
&&&&&&&&public IEnumerator Flashing ()
&&&&&&&&&&&&&&&&flash.enabled = true;
&&&&&&&&&&&&&&&&yield return new WaitForSeconds(1.5f);
&&&&&&&&&&&&&&&&flash.enabled = false;
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&transform.parent.GetComponent&Collider&().enabled = true;
&②SpriteAnimationController.cs 代码如下:
using UnityE
using System.C
public class SpriteAnimationController : MonoBehaviour
&&&&&&&&[Range(0.1f, 1f)]
&&&&&&&&public float time = 0.3f;
&&&&&&&&[SerializeField]
&&&&&&&&string format = string.E
&&&&&&&&private int spriteNo = 0;
&&&&&&&&private Texture[] sprite = null;
&&&&&&&&void Awake ()
&&&&&&&&&&&&&&&&sprite = new Texture[2];
&&&&&&&&&&&&&&&&for (int i=0; i&2; i++) {
&&&&&&&&&&&&&&&&&&&&&&&&string spriteName = string.Format (&Texture/& + format, i + 1);
&&&&&&&&&&&&&&&&&&&&&&&&sprite& = Resources.Load (spriteName, typeof(Texture)) as T
&&&&&&&&&&&&&&&&}
&&&&&&&&void OnEnable ()
&&&&&&&&&&&&&&&&SpriteAnimationController[] animations = GetComponents&SpriteAnimationController& ();
&&&&&&&&&&&&&&&&foreach (SpriteAnimationController anim in animations) {
&&&&&&&&&&&&&&&&&&&&&&&&if (anim != this)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&anim.enabled = false;
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&StartCoroutine (UpdateSprite ());
&&&&&&&&void OnDisable ()
&&&&&&&&&&&&&&&&StopAllCoroutines ();
&&&&&&&&IEnumerator UpdateSprite ()
&&&&&&&&&&&&&&&&while (true) {
&&&&&&&&&&&&GetComponent&Renderer&().material.mainTexture = sprite [spriteNo];
&&&&&&&&&&&&&&&&&&&&&&&&spriteNo = (spriteNo == 0) ? 1 : 0;
&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&yield return new WaitForSeconds(time);
&&&&&&&&&&&&&&&&}
3.新建Title.unity 开始场景,场景中新建一个Manager对象,附加TitleManager.cs组件,并且标题的闪烁功能Flashing.
&①TitleManager.cs代码如下:
using UnityE
using System.C
public class TitleManager : MonoSingleton&TitleManager&
&&&&&&&&[SerializeField]
&&&&&&&&void Update ()
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&if (Input.GetButtonDown (&Fire1&)) {
&&&&&&&&&&&&&&&&&&&&&&&&StartCoroutine (GoPrologue ());
&&&&&&&&&&&&&&&&&&&&&&&&enabled = false;
&&&&&&&&&&&&&&&&}
&&&&&&&&IEnumerator GoPrologue ()
&&&&&&&&&&&&&&&&GetComponent&PlaySound& ().PlayOneShot ();
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&flash.enabled = false;
&&&&&&&&&&&&&&&&flash.offTime = 0.1f;
&&&&&&&&&&&&&&&&flash.onTime = 0.1f;
&&&&&&&&&&&&&&&&flash.enabled = true;
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&yield return new WaitForSeconds(1f);
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&Application.LoadLevel (&Prologue&);
& && &②Flashing.cs代码如下:
using UnityE
using System.C
public class Flashing : MonoBehaviour
&&&&&&&&[Range(0.01f, 1f)]
&&&&&&&&public float onTime = 0.7f;
&&&&&&&&[Range(0.01f, 1f)]
&&&&&&&&public float offTime = 0.3f;
&&&&&&&&void OnEnable ()
&&&&&&&&&&&&&&&&StartCoroutine (Flash ());
&&&&&&&&void OnDisable ()
&&&&&&&&&&&&&&&&StopAllCoroutines ();
&&&&&&&&GetComponent&Renderer&().enabled = true;
&&&&&&&&IEnumerator Flash ()
&&&&&&&&&&&&&&&&while (true) {
&&&&&&&&&&&&GetComponent&Renderer&().enabled = true;
&&&&&&&&&&&&&&&&&&&&&&&&yield return new WaitForSeconds(onTime);
&&&&&&&&&&&&GetComponent&Renderer&().enabled = false;
&&&&&&&&&&&&&&&&&&&&&&&&yield return new WaitForSeconds(offTime);
&&&&&&&&&&&&&&&&}
& & 4.Prolgue.unity 过渡场景,并且场景中附加PrologueManager.cs 组件;
& && & PrologueManager.cs 代码如下:& &&
using UnityE
using System.C
public class PrologueManager : MonoSingleton&PrologueManager&
&&&&&&&&IEnumerator Start ()
&&&&&&&&&&&&&&&&yield return new WaitForSeconds(4.5f);
&&&&&&&&&&&&&&&&Application.LoadLevel (&Game&);
& & 5.接下来,我们需要做一些准备工作,制作需要的Prefab,例如鱼、子弹、猫等;
<font color=#-28<font color=#-28<font color=#-28<font color=#-22<font color=#-26<font color=#-26<font color=#-26<font color=#-23<font color=#-23<font color=#-21
早在去年7月份,为了让 VR/AR 应用开发人员更轻松地创建和更直观地看到 3D 虚拟对象,...
想知道在Unity中如何将游戏中角色对话的唇型与面部微表情达到次时代的水准吗?想知道...
近日,RLTY CHK工作室的联合创始人Nick Robinson发布了一篇文章,以媒体天师麦克卢汉...
VR设计师和开发者们开始着手如何让VR环境及体验更加有趣、逼真。以下是一些关于如何为room...
笔者在为《幻想装置》和《工作模拟》制作出混合现实的预告片以后,研究了更深层次的VR...不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场 - 简书
不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场
如果你不是VR游戏或应用的开发者,可以选择无视下面的内容,这不是给普通用户看的~
如果你之前曾经为Oculus Rift DK2或者Gear VR开发过,那么心里面一定曾经有千万个草泥马来回奔跑过。虽然Unity从5.1版本开始就支持VR应用和游戏开发,但是从Oculus和Unity双方的开发者论坛讨论情况看,大家都对双方互相推诿责任感到不满。
如今,随着第一代消费级移动VR产品Samsung Gear VR正式推向市场,而三大核心主力设备也将悉数于2016年Q1和Q2粉墨登场,一向与时俱进的Unity再也坐不住了。
就在今天,Unity官方在推出5.3版本的同时也推出了首个官方的VR开发教程。虽然不是很详细,但是对于苦逼了很久的开发者来说,简直就是仙音佛乐。
废话少说,让我们来一起看看吧。
PART I UNITY VR简介
Unity内置对若干VR设备的支持,至于具体是哪些设备,不妨看看VRDeviceType这个枚举变量。
本教程主要针对Oculus系列的VR设备,特别是Oculus Rift Development Kit 2(DK2)和消费者版本的Samsung Gear VR(需要配合三星旗舰手机系列使用,如Galaxy S6, S6 Edge,S6 Edge+,Note 5)。对于配合第一代开拓者版本Gear VR的Note4,我们并不关心。因此虽然有些VR示例还是可以在这台设备上运行,但是效果肯定没那么好。哥,你就明说不要用note4和开拓者版本的gear vr好了。
当然,Unity也会在后续支持其它VR头戴设备,比如HTC VIVE。因此当那一天到来的时刻,这篇官方的教程也会随之更新的。老实说,Unity和Oculus真是一对好基友。
如果想了解VR头戴设备的更多信息,建议去阅读官方的手册。
PART II 在Unity项目中设置VR
首先请下载最新的Oculus runtime 0.8或更高版本( ),以及最新的Unity5.3或更高版本( )。
在项目中启用对VR的支持废除简单,只需要在Unity菜单中选择Edit & Project Settings& Player & Other Settings & Rendering
然后在Inspector中勾选”Virtual Reality Supported“。
在runtime时,可以通过在代码中使用UnityEngine.VR.VRSettings.enabled属性来进行设置。
PART III 在Unity中预览VR场景
当我们在Unity Editor中已经启用VR Support,而且连接上了DK2设备时,进入Play 模式就可以在DK2上显示游戏的场景。这样可以大大提高开发测试和迭代的效率。和之前不同,开发者无需编译生成一个可执行的项目才能看到VR应用或游戏的调整。当然,老司机们会发现此前的双眼视图已经被单一视图替代了。
需要提醒大家的是,我们没必要为每只眼睛都创建一个camera,所有的camera都会在VR中进行渲染,除了那些分配了Render Texture(渲染纹理)的摄像机。关于Render Textures,请参考这里( )。Unity会自动对摄像机的渲染进行优化,比如culling(剔除)和阴影渲染,从而减少性能消耗。
关于VR的相关主题还可以在Unity Manual( )和Unity Scripting API( ) 和中找到更多信息。
PART IV 使用Unity进行VR开发的软硬件推荐
因为VR是一个全新的媒介,所以在撰写本教程的时候存在着软硬件的限制,请参考以下内容。
为了让用户获得好的VR游戏体验,需要在头戴设备上实现所需的帧速。在DK2上的最小帧速是75fps,而在Gear VR上的最小帧速是60fps。如果帧速小于以上数值,那么用户会明显感觉到体验下降甚至导致晕眩。
除了保持游戏帧速在一定的数值之上,玩家电脑上的GPU还必须具备足够的能力,可以按所需的分辨率以HMD头戴设备面板的刷新率输出。以DK2为例,就是需要做到75hz和19201080。不过如果你想给Oculus Rift CV1开发应用,那么就必须实现90hz和21601200的分辨率,这将是个巨大的挑战。
如果你在使用DK2,那么需要确保硬件设备可以用所需的分辨率以所需的刷新率输出图像。很多笔记本电脑采用独立显卡和集成显卡切换的方式,但这些显卡基本上都无法满足以上要求,甚至连和75hz都实现不了,这样将严重影响用户体验。关于这部分内容,请参考Oculus的相关文档( ),以及Oculus PC配置指南( )。
苹果OS X操作系统:目前来说我们还是可以使用OSX 10.9以上的操作系统配合Oculus 0.0.5 runtime进行开发。但因为Oculus官方暂停了对OS X系统的支持,因此建议果粉们不要拍砖,还是老老实实用Windows系统,并使用Unity的原生VR功能。
Windows: 支持Windows 7,8,8.1和windows 10.
Android: 推荐使用android OS Lollipop 5.1或更高版本
显卡驱动:请确保你的显卡驱动是最新的。可以使用Oculus Configuration Utility来检查显卡驱动是否够用。
Oculus Runtime:为了在Unity 5.3中进行VR开发,请使用Oculus Runtime 0.8或更高版本。
PART V VR示例项目
作为本教程的一部分,我们在Asset Store上免费提供了一个VR示例项目。该项目可以同时支持DK2和Gear VR,我们将根据Oculus硬件的迭代不断更新该示例项目,同时也会在将来考虑支持其它头戴设备。
该示例项目的下载链接如下:
1.示例场景
主要的示例场景包括:
(1)Intro: 介绍场景,教用户学习基本的交互
(2)Menu:菜单场景,可以选择迷你游戏来玩
(3)Flyer:一个飞行小游戏
(4)Maze:一个桌面迷宫游戏
(5)Target Gallery:一个回廊射击游戏
(6)Target Arena:一个360度射击竞技场游戏
怎么样,Unity还是很厚道的吧?
除了这些完整的小游戏之外,还有一些示例场景涵盖了本教程的一些重要概念:
(1)InteractiveItem:演示了如何VR中和物体进行交互
(2)RenderScale:演示了RenderScale将如何影响图像质量
(3)Reticle: VR中 reticle的基本示例
(4)Rotation:演示了物体将如何随头部运动做出响应
(5)Touchpad:演示了如何使用Gear VR的触摸板进行交互。
所涵盖的重要概念:
(1)自顶向下的桌面游戏机制
(2)朝屏幕内的星际火狐风格的射击游戏机制
(3)回廊射击游戏机制
(4)360度回廊射击游戏机制
(5)如何在VR中设计界面
(6)如何设计立体界面
(7)在VR中和物体进行交互的基本框架,包括如何处理视线焦点的切换
(8)reticle运动、缩放、阴影等
(9)基于头部旋转的运动
(10)如何使用Gear VR触摸屏,包括轻击、双击和滑动,或是在使用DK2时如何使用键盘鼠标进行交互。
(11)如何判断设备时Gear VR还是DK2
(12)如何在围绕中心点旋转摄像机时避免晕眩效应
(13)如何实现摄像机的消隐
(14)摄像机消隐的过渡
(15)物体的池化
除了提供这些概念之外,为了方便VR开发者的重用,我们还提供了其它一些有用的示例:
(1)摄像机的消隐
(2)摄像机消隐的过渡
(3)在VR中和物体进行交互的框架
(4)Hold以确认交互
(5)reticle运动和缩放
(6)和平台无关的文本
(7)指示特定方向的UI箭头
(8)移动UI元素,使其始终面向摄像机
(9)交互时倾斜UI物体。
为了运行本项目,开发者需要使用Unity5.3.0或以上版本,拥有推荐配置以上的软硬件,拥有一台DK2或是搭配合适三星手机的Gear VR,同时要下载Oculus Runtime 0.8或以上版本。
PART VI Oculus Unity Utilities
作为补充,你也可以下载Oculus官方提供的Oculus Unity Utilities( )来实现一些特殊功能。其中包含了有用的脚本和预设,比如如何调整IPD(瞳间距)等等。
本教程只关注原生Unity VR开发,因此对Oculus Unity Utilities,请参考Oculus官方网站以获取更多信息。()
好了,现在你已经知道自己需要哪些东西了。第一篇教程到此结束,在后续的时间里面我们将进一步学习如何开始VR开发。
今年年初,高盛发布了《VR 与 AR:解读下一个通用计算平台》的行业报告。腾讯科技将该报告做了汉化处理。本文选取了报告中 VR/AR 的区别、VR/AR 的 9 大应用领域等部分,与营销人分享。 VR 和 AR 的区别 VR 和 AR 有着不同的应用领域、技术和市场机会,因...
一、VR定义、特征以及发展历史1.1、VR(虚拟现实)的定义虚拟现实即“Virtual Reality”,简称VR,是近年来才出现高新技术,是利用电脑模拟产生一个三维 空间的虚拟世界,虚拟现实技术是仿真技术的一个重要方向是仿真技术与计算机图形学人机接口技术多媒体技术传感技术...
转自http://www.cnblogs.com/donghua/p/4957415.html Oculus/GearVR开发者群 Welcometo the Unity Development GuideIntroduction简介Welcometo t...
为了准备好学习使用Unity开发VR应用,我们首先要检查下自己的电脑硬件和软件配置是否满足要求。简单来说,显卡要NVIDIA GTX970或AMD290以上,CPU要Intel i5-459以上,内存8GB以上,要有两个USB3.0接口,一个USB2.0接口,一个HDMI ...
互联网+VR全景+智慧城市方案,给传统企业插上腾飞的翅膀-VR全景智慧城市 目录:一、VR定义、特征以及发展历史1.1、VR(虚拟现实)的定义1.2、VR的特征1.3、VR的发展历史二、VR产业链以及发展趋势2.1、硬件设备2.2、操作系统2.3、内容2.4、分发渠道2.5...
贵的概念是在5000年的官本位主流文化下所催生,是对权利的渴望、崇拜,皇室传长子、寒门望贵子等等,即使被西方文化侵蚀、冲击,虽仇官、仇富,依旧根深蒂固,所以扎克伯格在中国没有土壤,我们只有媒体口中的北大猪肉仔、修鞋大学生李学栋……
她自信,与我一样自恋 但又有所不同,她警醒 她成长在南方的天幕下 她快乐 没心没肺地笑着 这是曾经 她的曾经 她生活在南方的城市中 热爱水果和精致的食品 她无意流连目前的城市 她驻足时 坚强且故作 只是因为一场突如其来的风暴 她骨子里的轻盈被沉重打击时 我能听到噼啵的声音 ...
山坡上很大很大的云 轻轻、软软、白白的 风一吹,就慢慢地跑 顺着叶子飘落的方向 蒲公英也跟着一起飘 我就坐在山脚,旁边是我的小狗 风把我俩吹得都很开心 我把它抱在怀里 我和它都很想抱一抱 轻轻的蒲公英和软软的云 作者说 我是赵湘林,我在重庆读大学,生活安静而丰富。 可爱的你...
其实,那天在欢乐谷玩的很开心。在那么刺激的游乐项目上肆无忌惮的喊着和发泄,忘掉了所有的束缚和不愉快,尽情的笑着。仿佛回到儿童时代那种无忧无虑天真无邪的纯净一般,唯一遗憾的是极速飞车没有去坐,在下面站着看了四五遍,可是都没有勇气上去坐。身边的人也没有那么冲动的,反倒是我特别冲...
“停车坐爱枫林晚,霜叶红于二月花”。每当吟咏起这动人的诗句,便会浮想联翩,而如今黛眉山的枫林比那夕阳边的红霞更加绚烂。(摄影:美丽中国行网\火龙果旅游) 百花争艳的春天固然美丽,但秋天的树叶也有绚丽的色彩。 一阵凉爽的秋风吹来,无数枫叶随风飘荡,红的、黄的、绿的……,每片叶...使用Unity5.1进行VR开发的配置(最新的未必是最好的!!!)
随着Unity5.1的发布,之前的Oculus
Rift和Gear
开发流程发生了巨大的变化,这也算是小白鼠们必须付出的代价了~
那么Unity5.1和Oculus的整合究竟发生了哪些变化,对开发者们开发应该如何来调整开发策略呢?下面是Oculus官方的详细说明,不得不看。
1.Unity提供了第一方的支持
Unity从5.1版本开始提供了对虚拟现实的第一方开发支持,当开发者在Player
Settings中勾选”Virtual
Reality Supported”选项时,就会自动使用一个全景的VR摄像机来取代默认的主摄像机。
V5.1最开始只支持Oculus
Rift,从6月12日开始Unity发布了5.1.0p1,开始支持Gear
VR.。开发者可以从这里下载最新的补丁版本。
目前最新的版本是5.1.2p1,7月22日发布。
当然,不是说最新的版本就是最好的,开发者一定要注意看bug修复清单,另外还有附加的说明。比如针对VR开发来说,Unity官方推荐先停留在5.1.2f1版本。因为在5.1.2p1版本有个bug,要等到1周后才会在5.1.2p2版本中修复。
关于如何实现Unity第一方的VR支持,可以参考Unity官方的说明:
2.Unity5.1和Oculus
Integration的整合开发
需要注意的是,Unity5.1的第一方VR支持和Oculus
Unity Integration的历史遗留版本并不兼容(v0.6.0及之前的Oculus
SDK)。如果想要在Unity5.1中使用遗留的integration,那么久必须在Player
Settings中取消勾选”Virtual
Reality Supported“。
不过Oculus正在抓紧工作,很快会对Unity
Integration做一个更新。届时就可以在VR项目中正常使用新的Oculus
Integration了。
3.已知的问题
考虑到迁移到Unity5.1对VR项目开发来说存在相当大的变化,因此我们建议大家慎重考虑升级的时间。简单来说,再次强调,做小白鼠是要付出代价的~
如果大家在这个过程中遇到任何问题,请在Oculus Unity论坛中提出来,Oculus的技术支持人员本尊会是不是出来看看情况。
目前我们已知Unity5.1版本在开发VR游戏时存在以下问题:
所有的moonlight脚本(包括平台UI,CPU/GPU
level,overlay)都不兼容Unity5.1.0。为了解决这一问题,我们会尽量在Oculus
SDK 0.6.0.1中进行修正。除此之外以下特性无法正常实现:
MediaSurface
TimeWarp sub-stepping(仅支持60,不再支持20或30)
Linear lighting(sRGB)和eye
texture MSAA当前无法正常使用,预计在Unity5.1.0p2中解决。
VR.VRSettings.renderScale在Android上面无效
当前无法实现对每只眼睛渲染不同的内容(立体电影)。该特性看会在未来的某个Unity版本中得到解决。
关于Unity5.1的更新说明和问题说明,请参考:
最后的小结,在更完美的Unity版本出来之前,对于VR开发者来说最好的选择是:
仍然使用Oculus官方的Unity
Integration,同时不要在Unity的Player
Setting中开启”Virtual
Reality Supported”.
我的VR资讯网站:赛隆网()
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)【Unity】强制设定分辨率-GAD腾讯游戏开发者平台

我要回帖

更多关于 unity 设置屏幕分辨率 的文章

 

随机推荐