锚点这东西挺怀念的,N年前我在做J2ME手游的时候。屏幕整体的坐标是左上角是00点。X轴向右递增,Y轴向下递增。所有的image也是这个原理。只是unity的触摸屏坐标不是左上角,而是左下角。 所以这里我把精灵的锚点也设置成了左下角,注意上图中的pixels to units 请设置成100。

触摸屏坐标:就是用Input.mousePosition 获取用户触摸屏幕手指 或者 鼠标的位置。

实际坐标:unity的实际坐标是笛卡尔坐标系,00点是在正中心,X轴向右是正,向左是负。Y轴向上是正,向下是负。

这样问题也就来了,我怎么把触摸屏的坐标换算到实际坐标系上?解决这个问题之前我们要先解决一个更重要的问题–摄像机的参数。

我开发时的分辨率设置成宽960高640.如下图所示,在Game视图下面,我选择了960X640的分辨率,下面提示的 using reslution 717×478 是因为此时Game视图的比960X640小,所以这里等比例缩小了一点所以是 717X478。

这时选择你的摄像机。如下图所示,把Projection改成Orthographic 也就是正交摄像机。 然后要说的就是size = 3.2。这个3.2是怎么来的呢?想想我们的分辨率的高是多少?高是640.  640/2/100 = 3.2. 除以2就是屏幕高的一半,除以100就是上面我们设置的 pixels to units =100 . 再举个例子如果你开发时的分辨率是1280X720 那么此时你的高就是720了。 720/2/100 = 3.6 那么此时摄像机的size 就应该写成3.6了。。 再唠叨一句,手游的分辨率自适应基本都是这样修改摄像机的size来实现的了。

摄像机的参数搞清楚了,我们在来看看之前提出的问题?我怎么把触摸屏的坐标换算到实际坐标系上? 把如下代码挂在一个Sprite对象上。

 using UnityEngine;
using System.Collections; public class FishCommon : MonoBehaviour { private float camHalfHeight;
private float camHalfWidth; void Awake()
{
this.camHalfHeight = Camera.main.orthographicSize;
this.camHalfWidth = Camera.main.aspect * camHalfHeight;
} void Update () {
//手指 或者 鼠标的坐标传进去
Move(Input.mousePosition);
} public void Move(Vector2 postions){
Move(new Vector3(postions.x,postions.y,));
}
public void Move(Vector3 postions){
//在这里进行坐标的换算
transform.position = ScreenToWorld(postions);
} private Vector3 ScreenToWorld(Vector3 postion){ return Camera.main.ScreenToWorldPoint(postion);
}
}

转载自:http://www.xuanyusong.com/archives/3254

Sprite与屏幕之间的关系的更多相关文章

  1. Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系

    转载请包含网址:http://blog.csdn.net/pathuang68/article/details/7351317 一.Surface Surface就是“表面”的意思.在SDK的文档中, ...

  2. UI设计中px、pt、ppi、dpi、dp、sp之间的关系

    UI设计中px.pt.ppi.dpi.dp.sp之间的关系 武汉AAA数字艺术教育 2015-07-24 14:19:50 职业教育 pi px 阅读(3398) 评论(0) 声明:本文由入驻搜狐公众 ...

  3. 电脑结构和CPU、内存、硬盘三者之间的关系

    前面提到了,电脑之父——冯·诺伊曼提出了计算机的五大部件:输入设备.输出设备.存储器.运算器和控制器. 我们看一下现在我们电脑的: 键盘鼠标.显示器.机箱.音响等等. 这里显示器为比较老的CRT显示器 ...

  4. 实际比较filter2D和imfilter之间的关系

    实际比较filter2D和imfilter之间的关系 ​                  卷积运算是图像处理和增强中经常遇到的一种算法.由于很多优秀的开源算法都是采用matlab编写的,在我改写为c ...

  5. 网络互联技术(2)——前篇—【转载】电脑结构和CPU、内存、硬盘三者之间的关系

    原文链接:传送门 详细内容: 电脑结构和CPU.内存.硬盘三者之间的关系 前面提到了,电脑之父——冯·诺伊曼提出了计算机的五大部件:输入设备.输出设备.存储器.运算器和控制器. 我们看一下现在我们电脑 ...

  6. 如何理解VB窗体中的scale类属性及width height属性之间的关系

    如何理解VB窗体中的scale类属性及width height属性之间的关系 VB中的SCALEHIEGT,SCALEWIDTH,与窗体中的WIDTH,HEIGHT的区别及关系是许多VB初学者难以理解 ...

  7. android - px(像素)、dpi(像素密度)、dip(密度无关像素)之间的关系

    使用ImageView会遇到的问题 在Android应用中,都少不了图片的显示,ImageView,轮播图,ViewPager等等,很多都是来显示图片的,很多时候,我们都希望图片能够在宽度上填充父窗体 ...

  8. 嵌入式开发之信号采集同步---VSYNC和HSYNC的作用以及它们两者之间的关系

    VSYNC和HSYNC的作用以及它们两者之间的关系 VSYNC和HSYNC的作用以及它们两者之间的关系 VSYNC和HSYNC是什么 VSYNC: vertical synchronization,指 ...

  9. linux图形界面基本知识(X、X11、Xfree86、Xorg、GNOME、KDE之间的关系)

    linux图形界面基本知识(X.X11.Xfree86.Xorg.GNOME.KDE之间的关系)(转自互联网) LINUX初学者经常分不清楚linux和X之间,X和Xfree86之间,X和KDE,GN ...

随机推荐

  1. Parallel Programming AND Asynchronous Programming

    https://blogs.oracle.com/dave/ Java Memory Model...and the pragmatics of itAleksey Shipilevaleksey.s ...

  2. You have JVM property "https.proxyHost" set to “localhost”

    Mac下Pycharm和AndroidStudio里面proxy配置页都提示这个,后来在~/.gradle/gradle.properties里面找到了proxy设置代码,删掉就好了.

  3. jenkins结合脚本实现代码自动化部署及一键回滚至上一版本

    持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本 一:本文通过jenkins调用shell脚本的的方式完成从Git服务器获取代码.打包.部署到web服务器.将web服务器从负 ...

  4. tab栏切换fengz

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 【GitHub】 README.ME 格式

      README =========================== 该文件用来测试和展示书写README的各种markdown语法.GitHub的markdown语法在标准的markdown语法 ...

  6. 锁与theadLocal的合并使用

    ); , TimeUnit.); ){ , TimeUnit.); ){ ); infoPO.setRemainAmount(infoPO.getRemainAmount()-amount); bas ...

  7. 【WPF】设置TextBox内容为空时的提示文字

    <TextBox Width="150" Margin="5"> <TextBox.Resources> <VisualBrush ...

  8. [posix]Posix多线程编程

    就不排版了,可以到原作者博客下看 转自:http://www.cnblogs.com/zhangsf/archive/2013/09/09/3309867.html 目录表  摘要 译者序 Pthre ...

  9. java中的方法——重载yu重写(转)

    重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. ...

  10. Spring Boot 日志记录 SLF4J

    Spring Boot 日志记录 SLF4J 2016年01月12日 09:25:28 阅读数:54086 在开发中打印内容,使用 System.out.println() 和 Log4j 应当是人人 ...