当前位置: 首页 > 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.hrbkazy.com/news/52257.html

相关文章:

  • 厦门网站建设系统全网营销软件
  • 网站慢用台服务器做跳板企业网站的作用有哪些
  • 代理公司注册网站2020年可用好用的搜索引擎
  • 如何做收费视频互动网站国外网站开发
  • 学校学生网站模板下载淘宝指数官网
  • 重庆做网站人才今日头条10大新闻
  • 广告公司设计网站关键词排名优化系统
  • 长春做网站的公司浙江seo外包费用
  • 西安抖音seo推广站长工具seo综合查询下载
  • 阳江问政平台官网入口网站搜索引擎优化方案的案例
  • 个人建网站首选什么域名好免费推广引流平台有哪些
  • 玖云建站系统seo优化名词解释
  • 网站建设素材模板下载哪里有营销策划培训班
  • 离职删除做的网站站长之家下载
  • 哈尔滨建设局网站seo sem关键词优化
  • 大连永锐网站哪家做的做百度推广代运营有用吗
  • 个人网站建设与实现毕业设计免费个人网站模板
  • app技术天津企业seo
  • 珠海网站建设及优化上海知名的seo推广咨询
  • html做分模块的网站惠州seo推广公司
  • 有关网站开发的文献网络推广合同
  • 怎么做阿里巴巴国际网站首页世界杯积分榜排名
  • 南宁网站关键字优化模板建站公司
  • 做网站seo怎么赚钱铜川网站seo
  • dw可以做视频网站么软文营销文章300字
  • 做书app下载网站有哪些市场推广方案ppt
  • 网店美工设计的四大要点郑州本地seo顾问
  • 用网站做简历建站平台哪家好
  • 怎么做css网站正规微商免费推广软件
  • 网站建设及推广话术济南优化哪家好