当前位置: 首页 > news >正文

各类郑州网站建设百度一下app

各类郑州网站建设,百度一下app,满屏网站做多大尺寸,网站管理系统模板获得视口宽高 拖动视口会改变屏幕宽高数值 MousePosition 屏幕坐标系的原点在左下角,MousePosition返回Z为0也就是纵深为0的Vector3 但是如果鼠标超出屏幕范围不会做限制,所以可能出现负数或者大于屏幕宽高的情况,做鼠标拖拽物体时需要注…

获得视口宽高

拖动视口会改变屏幕宽高数值
在这里插入图片描述

MousePosition

屏幕坐标系的原点在左下角,MousePosition返回Z为0也就是纵深为0的Vector3

但是如果鼠标超出屏幕范围不会做限制,所以可能出现负数或者大于屏幕宽高的情况,做鼠标拖拽物体时需要注意是否需要跟随超出屏幕
在这里插入图片描述
下面这个写法是不对的,获得鼠标的屏幕位置纵深将一直为0,屏幕坐标转世界坐标其实是根据距离摄像机的平面确定的(z轴),所以需要先确定z轴后转世界坐标系

GetMouseWorldPosition = Camera.main.ScreenToWorldPoint(GetMousePosition);

利用射线检测物体转屏幕坐标

不会出现超出屏幕坐标系的情况

if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out RaycastHit hit))
{GetObjectPosition = Camera.main.WorldToScreenPoint(hit.point);
}

获得带纵深的屏幕坐标系,xy值为根据屏幕大小决定,z为距离摄像机的位置与本身的世界坐标系z无关
在这里插入图片描述

UI坐标

Canvas的世界坐标z值是距离摄像机的距离,那么子物体的世界坐标z值也是与摄像机的距离
在这里插入图片描述

实现拖曳UI

屏幕坐标XY是根据屏幕宽高决定,Z是相对摄像机的距离,将屏幕坐标看成一个个屏幕即可
世界坐标是根据世界原点确定,与屏幕坐标的Z值参考不一样

using UnityEngine;
using UnityEngine.EventSystems;[RequireComponent(typeof(EventTrigger))]
public class DragUI : MonoBehaviour
{private EventTrigger m_eventTrigger;private RectTransform m_rectTransform;private Vector3 m_targetPosition;private Vector3 m_offsetPosition;void Start(){m_eventTrigger = GetComponent<EventTrigger>();m_rectTransform = GetComponent<RectTransform>();EventTrigger.Entry onDragEntry = new EventTrigger.Entry();onDragEntry.eventID = EventTriggerType.Drag;onDragEntry.callback.AddListener((data) => { OnDrag(); });EventTrigger.Entry enterDragEntry = new EventTrigger.Entry();enterDragEntry.eventID = EventTriggerType.BeginDrag;enterDragEntry.callback.AddListener((data) => { EnterDrag(); });m_eventTrigger.triggers.Add(onDragEntry);m_eventTrigger.triggers.Add(enterDragEntry);}private void EnterDrag(){m_offsetPosition = GetScreenMousePosition() - m_rectTransform.transform.position;}// 拖拽时移动UIprivate void OnDrag(){// 屏幕坐标转世界坐标m_targetPosition = GetScreenMousePosition();m_rectTransform.transform.position = m_targetPosition - m_offsetPosition;}// 获得鼠标世界坐标private Vector3 GetScreenMousePosition(){// 与摄像机的距离float distanceCamera = m_rectTransform.transform.position.z;// 鼠标位置(确定了平面的Z)Vector3 screenMousePos = Input.mousePosition + new Vector3(0f, 0f, distanceCamera);// 屏幕坐标转世界坐标Vector3 worldMousePos = Camera.main.ScreenToWorldPoint(screenMousePos);Debug.Log(worldMousePos);return worldMousePos;}
}
http://www.mmbaike.com/news/103148.html

相关文章:

  • 最早动画是如何做的视频网站成都网站推广公司
  • 安徽省工程建设监管和信用管理网seo排名优化是什么意思
  • 招聘网站建设需求文档浏览器直接进入网站的注意事项
  • 专业网站优化推广太原关键词优化服务
  • dw做网站 怎么做背景图片seo研究所
  • 做网站用什么后缀好2024年新闻摘抄
  • 承德新闻今日百度seo推广软件
  • 开发网站需要哪些技术人员自己做网站的流程
  • 最新章节 第四百六十二章 花两亿做的网站火星时代教育培训机构怎么样
  • 学风建设网站百度营销登录入口
  • 海口网站建设方案报价厦门seo全网营销
  • 广州市天河区建设局网站观看b站的广告网站平台
  • 宝安福永小学网站建设谷歌seo查询
  • 东营网站的优化百度seo排名培训
  • 怎么做报名网站百度指数搜索榜
  • 佛山现在什么网络推广好游戏优化大师
  • 展示型网站一样做seo优化吗网站制作论文
  • 网站模板 wordpresssem优化策略
  • 国内网站设计案例网站怎么做外链
  • 搜了网的免费b2b网站大数据营销专业
  • 如何建设个人网站和博客品牌宣传推广文案
  • 在网站建设中要注意的问题龙岗网站建设
  • 西乡做网站费用app推广策划方案
  • 哪个行业最容易做网站成人职业技能培训班
  • 花垣做网站朋友圈网络营销
  • 家纺网站建设百度广告太多
  • 江宁网站建设公司放单平台
  • 淘宝网站开发实训报告武汉网站seo德升
  • 网站建站纠纷宁波网站建设的公司
  • 网站做权重的好处网络营销主要做些什么工作