- 2
- 0
- 约3.11千字
- 约 7页
- 2017-02-28 发布于湖北
- 举报
关于这篇文章的命名,实在不知道怎么命名好,大概功能就是:比如一张宽高为100x100的图片显示在屏幕上,那2D摄像头的Size值为多少时,屏幕上显示出来图片大小和图片的实际像素一致。该文章来自【狗刨学习网】
? ??
? ?
? ? 比如上面的图的坐标系是世界坐标,而摄像机的坐标在原点(0,0,0),而且摄像机的Size属性为1那么我们在Size为1,而且屏幕的宽高比为3:2的情况下,摄像机所能看到的范围就如上图中橙色框框那样,也就是所能看到的高度y的世界坐标范围是-1到1,宽度x的世界坐标范围是-1.5到1.5 。那么我们就可以算出世界坐标和像素坐标的比值了。如果我们的屏幕宽高是480x320 (也是3:2的屏幕),那么如果显示在这个屏幕下,上图中,AB两点的高度是320,那么世界坐标高度就和屏幕的高度有个比值,即 2:320 再举个例子,假如有张宽高为100x100的图片,要显示在屏幕上,那它相对的世界坐标是的宽高又是多少呢?根据上面的比值可以算出来:
? ???100 * 2 / 320 = 0.625;? ?? ?
? ? 有这个比值,我们在用顶点生成面的时候就用图片的实际像素宽高乘以这个比值就能得到世界坐标的值鸟~
? ? 再写个程序简单的显示一张128x128的贴图在2D摄像头的size为1的境况测试下吧
font face=新宋体 size=2using UnityEngine;
using System.Collections;
public class SimpleSprite : MonoBehaviour {
? ???
? ? //标准摄像头的高度//
? ? public float standardCameraSize;
? ???
? ? //标准屏幕的高度//
? ? public float standardHeight;
? ???
? ???
? ? private float glTopixelRatio;
? ???
? ???
? ???
? ? //素材求//
? ? public Material spriteMaterial;
? ???
? ? //顶点数//
? ? private int verticesCount = 4;
? ???
? ???
? ???
? ? // Use this for initialization
? ? void Start () {
? ?? ???//计算像素和世界单位的比值//
? ?? ???glTopixelRatio = standardCameraSize * 2.0f / standardHeight;
? ?? ???initSprite();
? ? }
? ???
? ? // Update is called once per frame
? ? void Update () {}
? ???
? ? //根据宽高生成对应的面//
? ? private void initSprite(){
? ?? ?? ?
? ?? ???//获取图片的像素宽高//
? ?? ???int pixelHeight = spriteMaterial.mainTexture.height;
? ?? ???int pixelWidth = spriteMaterial.mainTexture.width;
? ?? ?? ?
? ?? ???Debug.Log(pixeW: + pixelWidth + ,pixeH: + pixelHeight);
? ?? ?? ?
? ?? ???//得到MeshFilter对象//
? ?? ???MeshFilter meshFilter = gameObject.GetComponent();
? ?? ???if(meshFilter == null){
? ?? ?? ?? ?//为null时,自动添加//
? ?? ?? ?? ?meshFilter = gameObject.AddComponent();
? ?? ?? ?? ?MeshRenderer meshRenderer = gameObject.AddComponent();
? ?? ?? ?? ?meshRenderer.sharedMaterial = spriteMaterial;
? ?? ???}
? ?? ???//得到对应的网格对象//
? ?? ???Mesh mesh = meshFilter.mesh;
? ?? ?? ?
? ?? ???//三角形顶点的坐标数组//
? ?? ???Vector3[] vertices = new Vector3[verticesCount
您可能关注的文档
- Ubuntu 6.06的安装图解.doc
- UBuntu 16.04服务器 安装成功之后第一次不能切换到Root权限的解决办法.docx
- Ubuntu Linux常用命令大全.doc
- ubuntu vim命令.doc
- ubuntu_vi编辑器使用.doc
- Ubuntu14.04配置Android环境(实践版).doc
- ubuntu常用命令大全.docx
- Ubuntu分区设置.doc
- ubuntu服务器入门.doc
- Ubuntu下强大的vim配置文件.doc
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
原创力文档

文档评论(0)