Unity设置物体与屏幕成一定关系
2016-09-21 20:49
741 查看
我们做手游很多时候要考虑到屏幕适配的问题,比如有些屏幕很长,有些屏幕相对较短。
当我们的一些2D游戏初始化的时候位置设置如果就没有和屏幕达到一定的关系,
则有时候在一些手机上运行时会出现游戏开始时主要物品等不在屏幕内的bug。
有时我们按照剧情在3D世界里面初始化物体的时候,也要和屏幕达成一定比例,
比如闯过一个关卡,然后界面后面的3D世界放起了烟花,烟花也是要与屏幕成比例的。
否则虽然创建很多烟花也能达到屏幕里能看见,但是耗费了性能,而且达不到某种效果,
比如有的烟花太近,有的太远。
这里设置和屏幕达到一定关系,比如某个物体距离屏幕右边距100个像素,之前死劲往Unity像素API的地方想,
后来查了好多都没有适合的API,回到视频原来可以这样:
下面上截图解释:
第一句的意思是获得屏幕上距离右边框100像素,然后和顶边齐平的点的世界坐标,无论第一句你传进去的是二维还是三维向量,
返回的三维向量的z值都是和主摄像机在世界的z坐标相同的,所以在赋值或者初始化物体的时候要注意。
屏幕坐标的原点和世界坐标的原点是不同的。图中红色圈为屏幕坐标原点,蓝色为世界坐标原点。
也就是说虽然还是那个点,但是它的x是以世界坐标的单位为单位,表示位于蓝圈的世界坐标原点到右边灰色边框的距离
y则表示以世界坐标的单位为单位,位于蓝圈的世界坐标原点到顶部灰色边框的距离。所以赋值物体大小时候要稍微转换一下。如:
当我们的一些2D游戏初始化的时候位置设置如果就没有和屏幕达到一定的关系,
则有时候在一些手机上运行时会出现游戏开始时主要物品等不在屏幕内的bug。
有时我们按照剧情在3D世界里面初始化物体的时候,也要和屏幕达成一定比例,
比如闯过一个关卡,然后界面后面的3D世界放起了烟花,烟花也是要与屏幕成比例的。
否则虽然创建很多烟花也能达到屏幕里能看见,但是耗费了性能,而且达不到某种效果,
比如有的烟花太近,有的太远。
这里设置和屏幕达到一定关系,比如某个物体距离屏幕右边距100个像素,之前死劲往Unity像素API的地方想,
后来查了好多都没有适合的API,回到视频原来可以这样:
temPos = Camera.main.ScreenToWorldPoint(new Vector2(Screen.width - 100, Screen.height)); target.position =new Vector3(temPos.x,temPos.y,0);
下面上截图解释:
第一句的意思是获得屏幕上距离右边框100像素,然后和顶边齐平的点的世界坐标,无论第一句你传进去的是二维还是三维向量,
返回的三维向量的z值都是和主摄像机在世界的z坐标相同的,所以在赋值或者初始化物体的时候要注意。
屏幕坐标的原点和世界坐标的原点是不同的。图中红色圈为屏幕坐标原点,蓝色为世界坐标原点。
也就是说虽然还是那个点,但是它的x是以世界坐标的单位为单位,表示位于蓝圈的世界坐标原点到右边灰色边框的距离
y则表示以世界坐标的单位为单位,位于蓝圈的世界坐标原点到顶部灰色边框的距离。所以赋值物体大小时候要稍微转换一下。如:
Vector3 tempPosition = Camera.main.ScreenToWorldPoint(new Vector2(Screen.width, Screen.height)); upWall.transform.position = new Vector3(0,tempPosition.y+0.5f); upWall.size = new Vector2(tempPosition.x * 2, 1);这句话的结果是upWall的底边恰好挨着上图灰色顶边,然后高度为1 ,长度为上图顶边的长度。
相关文章推荐
- unity 查找物体的写法 和 设置动画在某各地方倒着播放
- [Unity实战]判断角色面朝一定区域是否存在物体
- Unity设置物体旋转角度误区
- unity 判断物体是否到达屏幕边界
- 【Unity学习笔记】Unity设置单位长度与像素间的对应关系
- Unity 鼠标点击屏幕创建物体
- Unity简单利用屏幕坐标转换实现鼠标控制物体移动
- cocos2d-x 基础系列 (04) 对象位置屏幕尺寸设置关系以及addChild函数的使用
- unity怎样实现全屏间的切换以及设置屏幕分辨率
- unity屏幕分辨率设置注意及代码
- Unity通过层级关系获取子物体
- Vuforia在Unity中屏幕坐标转世界坐标,并使用lineRender画线,手指画线,选中物体并拖拽
- Unity 设置图片和屏幕的分辨率
- Unity -- 设置物体SelectIcon
- UNITY手指接触屏幕对物体进行旋转和缩放
- 【Unity闲谈】自动处理2.5D(伪3D)游戏中 物体的遮挡关系
- 【Unity】动态生成物体,设置一个物体为另外一个物体的父类
- Unity 3D Intantiate过程中Transform 空物体和本体之间的关系
- Unity判断一个物体是否在屏幕内外
- Unity 射线点击事件 父子物体的关系