Unity Camera -- (2)相机投影设置

news2024/12/25 9:02:29

在Editor中调整相机

        和场景视图中的其他游戏物体一样,相机本身也可以通过使用移动和旋转工具来进行调整。但这种方式比较难用,调整起来又慢又不精确。我们可以使用Move To View功能来快速调整相机所拍摄的画面。

        1. 打开Camera_Projection_Scene(Scenes目录)。

        2. 在Hierarchy中找到PlayerArmature,然后按F键,定位到这个游戏物体。

        3. 旋转缩放场景视图到我们想要相机所能看到的画面。

        4. 在Hierarchy中选中Main Camera,然后按Ctrl+Shift+F(Windows)或Command+Shif+F(MAC)。或者在菜单中选择GameObject->Align With View。

        用这种方法,我们可以快速将相机移动到我们想要拍摄的画面所需的位置和角度。

透视投影

        在Unity中,相机有两种投影类型:透视投影(Perspective)和正交投影(Orthographic)。默认情况下,Unity采用透视投影类型。

        透视投影和我们所看到的真实世界的物体的情况是一样的,简单来说就是近大远小。透视投影渲染场景时会带有深度信息。

设置视野(Filed of View)

        FOV表示相机的可视角度,换句话说就是相机能看到场景里多少东西。这个值的单位是度,默认是60度。

        我们尝试将这个值设置为30度来对比看看。在相机的Inspector中,将Field of View修改成30。

        上图相机位置不变,左边图的相机FOV设置为30度,右边为60度。可以看到FOV减小后,整个画面被放大了,角色也被裁剪了一部分。

        上图中,左边图的相机的位置是相机原始位置,FOV是30度;右边图的相机位置移动到了更靠近角色的位置来模拟出和左边图差不多的效果,但FOV为60度。可以看到FOV的值变小会极大影响背景中所能看到的物体范围。

        相机FOV的值的选取非常重要。如果FOV值较低,可能会造成用户产生晕动症(motion sickness)。这个值可以做成是用户可配置的,如果用户无法配置,则要确保FOV值满足一定的指导原则。参考:Game accessibility guidelines | If the game uses field of view (3D engine only), set an appropriate default for the expected viewing environmenthttps://gameaccessibilityguidelines.com/if-the-game-uses-field-of-view-3d-engine-only-set-an-appropriate-default-for-the-expected-viewing-environment/        对于要电视游戏,用户和屏幕之间的距离至少有几米远,相机的FOV的值至少要是60度(Unity的默认值)。但如果用户游玩时用的显示幕和玩家的眼睛靠的很近,则FOV要设置到一个比较大的值,至少是90度。

        下面,我们将相机的FOV设置为120度。设置完后,我们会发现相机所能看到的东西大大增加了。但同时我们也可以看到,场景也被不自然地拉伸了(类似广角镜头拍摄的图)。这种方式可以用来实现出一些我们想要的美术效果,但我们也要注意,大于90度的FOV同样可能会引起晕动症。

正交投影

        正交投影相机,也叫做2D相机,只会绘制场景X轴和Y轴的信息,Z轴信息(深度)被完全丢弃。

        1. 在Main Camera的Inspector中,将Projection修改为Orthographic。

            现在场景看起来会发生很大的不同,所有物体看起来就好像是在同一个平面上一样。

        2. 点击运行进入Play模式,然后用键盘的WASD控制角色跑动。

        我们可以发现,无论角色是远离相机还是靠近相机,角色的大小都没有发生变化,这是由于Z轴并没有被绘制。因此,正交投影相机对于卷轴游戏(side-scrolling games)非常有用。

调整相机的大小

        1. 退出Play模式,回到场景视图。

        2. 在Main Camera的Inspector中,调整一下Size属性看看效果。

             我们可以在相机预览窗口看到,调整Size属性后,在场景视图中,相机整体的缩放框在变化。正交相机只能整体缩放,无法进行单个轴的scale调整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/458820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 版企业工程项目管理系统平台(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…

7、如何使用接口?

1、基本用法 我们需要定义这样一个函数,参数是一个对象,里面包含两个字段:firstName 和 lastName,也就是英文的名和姓,然后返回一个拼接后的完整名字。来看下函数的定义: // 注:这段代码为纯Ja…

【致敬未来的攻城狮计划】— 连续打卡第十二天:FSP固件库开发按键输入检测控制LED灯闪烁。

系列文章目录 1.连续打卡第一天:提前对CPK_RA2E1是瑞萨RA系列开发板的初体验,了解一下 2.开发环境的选择和调试(从零开始,加油) 3.欲速则不达,今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.…

关于 OpenShift(OKD) 网络 Service、Routes的一些笔记

写在前面 参加考试,分享一些学习 OpenShift 的笔记博文内容为 OpenShift 网络相关组件 Service、Routes 很浅的一些认识学习环境为 openshift v3 的版本,有些旧这里如果专门学习 openshift ,建议学习 v4 版本理解不足小伙伴帮忙指正 傍晚时分…

轻量级服务器nginx:反向代理的具体配置

系列文章目录 例如:第一章 Python 机器学习入门之pandas的使用 反向代理和负载均衡 系列文章目录一 反向代理1.正向代理2.反向代理 二 反向代理的实际部署1.配置tomcat2.配置host,nginx反向代理的配置三 结果展示四 总结 一 反向代理 1.正向代理 我们…

通过docker发布项目

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言例如:docker项目的发布方式 [docker发布的参考链接](https://www.cnblogs.com/emperorking/articles/11244253.html) 一、docker是什么?…

Django框架之自定义管理页面

Django框架Admin站点管理一些默认的显示和功能包括语言都可以自定义设置处理,以贴近我们的实际业务。 属性说明 列表页属性 配置文件myapp/admin.py from django.contrib import admin from .models import Grades, Students# Register your models here.# 注册班…

收废品小程序开发中的常见问题及解决方法

常见问题 1. 用户界面设计 小程序的用户界面设计至关重要。设计师需要在用户界面中提供清晰的指示,以便用户可以轻松地找到他们需要的功能。同时,设计师还需要确保用户界面的整体风格与公司的品牌形象相符。 2. 功能开发 开发小程序的功能需要考虑到…

深入学习RabbitMQ五种模式(一)

1.安装erlang 下载otp_win64_25.3.exe https://www.erlang.org/downloads erlang安装完成,需要配置erlang环境变量 ERLANG_HOMEE:\software\Erlang OTPPATH%PATH%;%ERLANG_HOME%\bin; 2.安装RabbitMQ 下载rabbitmq-server-3.11.13.exe https://www.rabbitmq.com/dow…

交叉验证之KFold和StratifiedKFold的使用(附案例实战)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

力扣---LeetCode88. 合并两个有序数组

文章目录 前言88. 合并两个有序数组链接:方法一:三指针(后插)1.2 代码:1.2 流程图:方法二:开辟新空间2.1 代码:2.2 流程图:2.3 注意: 总结 前言 “或许你并不熠熠生辉甚至有点木讷但…

POSTGRESQL COPY 命令原理与加速数据 导入提高速度200%以上

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

vue2+vue3——107+

vue2vue3——107 vue2 Vuex工作原理图【23:54】vue2 搭建Vuex环境【26:40】插入 话题npm i vue3 store / index.js修改 vue2 求和案例_vuex版【22:39】vue2 vuex开发者工具的使用【23:21】vue2 getters配置项【07:55】vue2 mapState与mapGetters【25:20】vue2 mapActions与mapM…

egg3.0连接egg-mongoose操作数据库,删除一条数据、批量删除数据

删除一条数据 定义service app\service\role.js async delItem() {const { ctx } this;let results;await ctx.model.Role.deleteOne({ name: test-S3 }).then(res > {console.log(results-del-success, res);results res?.deletedCount > 0;}).catch(err > {con…

系统分析师之软件工程(十二)

目录 一、 软件开发生命周期 1.1 开发阶段工作细分 二、软件开发模型 2.1 瀑布模型 2.2 原型模型 2.3 增量模型与螺旋模型 2.4 V模型 2.5 喷泉模型 2.6 快速应用开发模型RAD 2.7 构件主装模型 2.8 统一过程 2.9 敏捷方法 三、逆向工程 四、净室软件工程 一、 软件…

为何C语言的函数调用要用到堆栈,而汇编却不需要自定义栈

一 ≠ 汇编不需要堆栈 汇编中一般不初始化,也就是直接使用系统的堆栈而已,自己定义堆栈还是要初始化的。 之前看了很多关于uboot的分析,其中就有说要为C语言的运行,准备好堆栈。 而自己在Uboot的start.S汇编代码中&#xff0c…

crm-day04 分页查询市场活动,刷新市场活动列表

分页插件 分页这个组件前端要写也很麻烦&#xff0c;而且与业务逻辑代码无关&#xff0c;因此我们引入一个分页查询的插件。 进行jsp测试 三大步骤&#xff1a; 1、引入相关的包 2、创建容器来保存插件的运行结果 容器是<input typetext/>或者div。 3、容器加载完成后&a…

猫猫与主人

时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 对猫猫按照友善值进行排序 对主人按照期望友善值进行排序 就可以找到能收养猫猫的主人 对主人的友善值取一个max最后跟猫猫的期望友…

用大佬开发的模板做了“智慧水务”,终于可以和老板谈加薪喽!

为什么各个行业要进行数字化转型&#xff1f; 其实很好理解&#xff0c;这其中很大一部分属于传统行业&#xff0c;以往运营方式较为粗放&#xff0c;信息标准化程度偏低&#xff0c;但同时也意味着数字化的历史包袱轻&#xff0c;此时跟上潮流进行数字化转型&#xff0c;有利于…

美颜SDK的性能测试和优化方案

美颜SDK作为美颜相机、短视频等应用的核心技术之一&#xff0c;对于提升用户体验和增加应用商业价值起到了至关重要的作用。然而&#xff0c;如何对美颜SDK进行性能测试和优化&#xff0c;成为了广大应用开发者们所面临的一大难题。很多开发者也曾经向小编提起过应该如何着手优…