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

一个网站设计的费用二手建筑铝模板哪里有卖

一个网站设计的费用,二手建筑铝模板哪里有卖,网站关键词代码,网络公司关键词排名获得视口宽高 拖动视口会改变屏幕宽高数值 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.yayakq.cn/news/492190/

相关文章:

  • 瀑布流资源网站模板怎么自己做砍价网站
  • 毕设网站开发什么题目好邢台网站推广报价
  • dede学校网站为什么要给企业建设网站
  • 重庆网站建设cqwordpress3D翻书效果
  • 郑州建站做营销怎样才能吸引客户
  • 网站为什么百度不收录个人简历电子版填写免费模板
  • 网站推广设计上海电子商务网站开发
  • 网站建设运维情况wordpress免费云储存
  • 阿里图标库谁做的网站设计之窗网站
  • 怎么建立一个博客网站东莞网站建设 环保设备
  • 个人网站建设方案书使用几号纸展示型网站建设价格
  • 网站怎样做优惠卷互联网怎么学
  • 网站的控制面板网站半年了 没有流量
  • 怀远做网站网站开发会计分录
  • 网站建设学生选课课程设计报告企业营销网站建设的基本步骤
  • 找大学生做网站论文网站建设
  • 社交网站 cmswordpress导航点不开分类
  • 怎样制作微信网站链接合肥 做网站
  • 网站推广基本方法是长沙房价2020最新价格
  • 中国建设招标网?官方网站学做ppt的网站 免费
  • 滨州网站网站建设一般纳税人利润300万要交多少税
  • 咸宁手机网站建设工商注册流程和需要的资料
  • 大连网站建设方案维护wap手机商城网站源码
  • 自己建设网站需要服务器铜川网站设计
  • 高端网站制作技术基于php的家具公司网站
  • 网站营销体系的建设及运营情况精准拓客营销系统
  • 哪个网站可以做分销音乐网站建设程序
  • 建筑建材网站设计费用seo的搜索排名影响因素有哪些
  • 兰州优化网站推广免费上线个人网站
  • 网站后台传图片传不了河北网站备案管理系统