跟诸子学游戏 unity3d 坐标体系

坐标体系分为4种:1:屏幕/鼠标坐标,2:Viewport/视图坐标 ,3世界坐标,4,2d世界的坐标和4个锚点,中心轴pivot关系紧密.

以下分为几点进行讨论解释

1,屏幕坐标就是鼠标坐标,从左下角向上为原点Y轴正方向,从左下角向右为原点X轴正方向,每个点就是一个像素.     

            世界坐标转换为屏幕坐标:Camera.main.WorldToScreenPoint(cube.transform.position);cube是3D物体.可以应用到游戏角色头上文字,血条等.如将cube转化为屏幕坐标,将2D UI控件位置赋值,UI控件再转化为3D坐标,展示在3D空间上.

2:世界坐标,主场景原点为(0,0,0) ,下面的任一物体在创建时,建议先Reset以下,父子物体展示出来的是相对坐标.

        将2D物体转换为世界坐标,Z是一般是一个 -10 .使用Camera.main.ScreenToWorldPoint(image.transform.position)image是一个2D物体.如此情况下在这个画布Canvas平面中如何拖动x轴或者z轴都不会改变,x 为0,y为1,综合起来image的世界坐标就是(0,1,-10).如果再在这个画布上放一image1,这个image1和image的2D位置不一样,但是他们2个的3D世界坐标,竟然是一样的(0,1,-10),需要特别注意,一般情况下不使用屏幕坐标转换成为世界坐标. Input.mousePosition 或者 Input.touches[0].position可以获得鼠标或者单根手指的屏幕(2D)坐标。可以应用到射击游戏的瞄准子弹发射方向以及游戏中点击地面游戏角色移动等.


3:ViewportRect,一般制作小地图/分屏使用,左下角为原点,右上角为(1,1),鼠标位置,触摸位置,世界坐标,UI位置等与此属性没有太大关系.

viewportrect

视口坐标是三维坐标

世界坐标转换为视口坐标:Camera.main.WorldToViewportPoint(cube.transform.position);cube是3D物体.

屏幕坐标转换为视口坐标:Camera.main.ScreenToViewportPoint(image.transform.position);image是2D物体;

5:绘制GUI界面的坐标系:

这个坐标系与屏幕坐标系相似,不同的是该坐标系以屏幕的左上角为(0,0)点,右下角为(Screen.width,Screen.height)。在private void OnGUI()编码的控件坐标系

5:UGUI的坐标不确定,因为它和锚点有关系,4个锚点在一个地方,则此时锚点位置为原点,从左下角向上为原点Y轴正方向,从左下角向右为原点X轴正方向.如果4个锚点分开,情况就非常复杂.详细请看上一节 https://www.jianshu.com/p/9384949964dc



6其他坐标系

摄像机坐标系:

摄像机坐标系

PS:做贪吃蛇游戏的诀窍是:在一条蛇上,将最后一个小方块根据方向放到当前蛇头的前方,移除最后一个方块.造成蛇走动的欺骗性艺术.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Unity3D中有哪些坐标系? 坐标系这个概念最早是由法国数学家笛卡尔提出的,并由此创造了用代数方法来研究几何...
    OneMore2018阅读 10,066评论 0 7
  • (二)坐标系和节点变换属性 标签(空格分隔): 内容创作工作流程 在 场景编辑器 和 节点和组件 文档中,我们介绍...
    菜鸟_一枚阅读 4,937评论 0 0
  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    Yuann阅读 5,617评论 0 7
  • 无论是2d还是3d游戏开发,图形学都是基础,解析几何的基本思想是将几何图形抽象成点的运动轨迹,从而点可以作为组成图...
    tmgg阅读 14,431评论 2 4
  • 笛卡尔坐标系的定义 :1、每个2D笛卡尔坐标系都有一个特殊的点,称为原点(0,0)它是坐标系的中心。2、每个2D笛...
    好怕怕阅读 8,785评论 3 8

友情链接更多精彩内容