基于回合制的、基于瓦片地图的、roguelike的2d的scavenger游戏项目,其中摄像机的设置参数值在视频教程中并没有说明如何计算出来的。Hoxily尝试修改棋盘的rows和columns值的时候,游戏画面就不对了。

首先设置摄像机的目标是将棋盘恰好不漏包含在游戏画面中。

然后注意到资源中的sprite导入参数是32像素每单位长度,每个sprite恰好是1个单位的长与宽。

摄像机处于orthographics正投影时,Size参数控制的是摄像机的一半高度。而摄像机的宽度则由屏幕的宽高比和摄像机的高度两个因素确定。

sprite的transform.position是该sprite的正中位置。

因此计算摄像机参数过程如下:

using UnityEngine;
using System.Collections;[RequireComponent(typeof(Camera))]
public class CameraManager : MonoBehaviour
{private Camera _camera;void Awake (){_camera = GetComponent<Camera> ();}/// <summary>/// 根据棋盘的大小,自动计算出相机的orthographicsSize,以及transform位置/// </summary>/// <param name="columns">Columns.</param>/// <param name="rows">Rows.</param>public void SetupCamera (int columns, int rows){float boardHeight = rows + 2;float boardWidth = columns + 2;float boardAspectRatio = boardWidth / boardHeight;float screenAspectRatio = (float)Screen.width / (float)Screen.height;if (boardAspectRatio <= screenAspectRatio) {// black strip at left and right// orthographicsSize * 2 == boardHeight_camera.orthographicSize = boardHeight / 2f;} else {// black strip at up and down// orthographicsSize * 2 * screenRation == boardWidth_camera.orthographicSize = boardWidth / screenAspectRatio / 2f;}float x = Center (-1f, -1f + boardWidth) - 0.5f;float y = Center (-1f, -1f + boardHeight) - 0.5f;float z = transform.position.z;transform.position = new Vector3 (x, y, z);}float Center (float min, float max){return (min + max) / 2f;}
}

roguelike2d 摄像机参数设置相关推荐

  1. 一文读懂WiFi网络摄像机参数设置的含义

    在WiFi网络摄像机的参数设置中,你可能不知道以下参数设置的具体含义.下面是一些常见的概念(编码模式.分辨率.帧率.码流控制.I帧间隔)等. 编码模式: (1)H.264 H.264是继MPEG-1. ...

  2. darwin转发时,摄像机在3G和4G模式下的参数设置

    darwin转发时,摄像机在3G和4G模式下的参数设置 我们转发的是摄像机的子码流,因为在不同的网络环境下,为了达到当前网络环境下最清晰,最流畅的目标,在转发前要根据使用的是3G还是4G及信号强度来自 ...

  3. 海康威视SDK二次开发通过云台参数设置控制摄像机的位置

    海康威视SDK二次开发通过云台参数设置控制摄像机的位置 由于最近在开发海康威视摄像头,特此记录一下通过云台参数控制摄像机的位置,我这里是通过properties配置文件输入的参数,也可以不用配置文件, ...

  4. 3DSMax怎么设置摄像机参数_3DSMax设置摄像机参数 小白教程

    3DMax是一款制作建模与动画制作软件,也可以进行动画的制作,但是需要借助摄机的帮助,那3DSMax怎么设置摄像机参数呢?下面小编给大家详细的介绍一下吧 3DSMax怎么设置摄像机参数?有很多小伙伴不 ...

  5. URP中摄像机参数的设置

    为哪个相机绘制 画之前的摄像机参数的设置 画之前的pass的设置 画之前的shader用到的变量设置 画在哪里 画之后干什么 画之前的摄像机参数的设置 1.4 configuring the view ...

  6. 海康威视摄像机SDK二次开发--通过云台参数设置控制摄像机的位置

    由于最近在开发海康威视摄像头,特此记录一下通过云台参数控制摄像机的位置,我这里是通过properties配置文件输入的参数,也可以不用配置文件,看具体的需求 package ClientDemo;im ...

  7. 改mysql修改界定符_dbvisualizer参数设置

    6.13 可否完全禁用数据编辑? 可以. 方法: 在文本编辑器里打开文件 DBVIS-HOME/resources/dbvis-custom.prefs. 找出 dbvis.disabledataed ...

  8. vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置

    [转载自]tinyle的专栏 [原文链接地址]http://blog.csdn.net/myaccella/article/details/7027962 [手记] 下面列出的参数可以在命令行中执行, ...

  9. libvlc_media_add_option 函数中的参数设置

    libvlc_media_add_option   函数中的参数设置 Usage: vlc [options] [stream] ... You can specify multiple stream ...

最新文章

  1. 以为Swing没人用了,原来群友们都是如此优秀!
  2. %matplotlib inline 是什么意思
  3. 【英语学习】【English L06】U06 Banking L2 A savings account sounds better for me
  4. C++ 面向对象程序三大特性之 多态
  5. 马云刘强东隔空互怼,美团外卖大范围故障,苹果系统漏洞百出 | 一周业界事
  6. SQL 2005数据库转为2000的终极解决方案
  7. SQL语句详解(一)——基本增删改操作
  8. 基于阿里云服务器+wordpress构建自己的网站(全过程系列,无需任何编程知识)
  9. 线性表的顺序存储结构--数组(顺序表)、栈、队列
  10. Aaron Swartz Rewriting Reddit中关于web.py的创建思路
  11. 《人生效率手册》学习总结
  12. Netlogo入门(二)
  13. ISO27001信息安全管理体系认证范围及用处
  14. 机器学习原来如此有趣:如何用深度学习进行语音识别 #精选APPLEAR
  15. 计算机无法获得有效ip地址,无法获取ip地址,详细教您电脑无法获取ip地址的解决方法...
  16. OSPF多实例路由防环检测功能介绍
  17. ARM(IMX6U)裸机之I.MX6ULL启动头文件详解(内部BOOT ROM、IVT + Boot data + DCD + led.bin)
  18. 背后的力量 | 升级电子病历基础架构 华云数据助力华中科技大学同济医学院附属协和医院打造就医新模式
  19. 面经---测试工程师web端自动化---大厂面试题
  20. (转)FLASH技术分享

热门文章

  1. Debian系统更新apt源
  2. 牛客网错题集合之字符串(一)
  3. [嵌入式开发模块]AD转换芯片ADS8344驱动模块
  4. Unity鼠标滚轴缩放大小
  5. bugku 不好用的CE WriteUp
  6. L1-3 打折 (5 分)——2018
  7. 运用瀑布模型完成PL/SQL程序设计
  8. 基于requests库和lxml库爬取优信二手车
  9. 虫口模型 matlab,虫口模型的研究与教学设计.PDF
  10. 我叫mt2微信新服务器,我叫MT2手游开服表_我叫MT2手游开服时间表_新服新区预告_第一手游网...