欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > Unity UGUI 之 坐标转换

Unity UGUI 之 坐标转换

2025/5/2 14:19:34 来源:https://blog.csdn.net/2301_77947509/article/details/140701156  浏览:    关键词:Unity UGUI 之 坐标转换
本文仅作学习笔记与交流,不作任何商业用途

本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正

本文在发布时间选用unity 2022.3.8稳定版本,请注意分别

前置知识:Unity UGUI 之 事件接口-CSDN博客 

Unity UGUI 之 事件触发器-CSDN博客

屏幕坐标转UI坐标

Q:首先他是干什么的?

A:可以点击,触摸,拖拽UI

Q:那我用事件触发器也可以实现啊!

A:这就是事件触发器下的小知识,可以将其理解为事件触发器中的一个辅助函数

不然你自己写拖拽逻辑也行,不过用轮子岂不是更快更好更省力

RectTransformUtility - Unity 脚本 API

注意看倒数第二个方法,用于将屏幕的位置转为UI位置(矩形平面位置)RectTransformUtility-ScreenPointToLocalPointInRectangle - Unity 脚本 API

 举个栗子:

我屏幕上有的:

 

我写的代码: 

using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.EventSystems;public class 坐标转换 : MonoBehaviour,IDragHandler
{public RectTransform canvasRectTransform;//以拖拽接口为例public void OnDrag(PointerEventData eventData) {Vector2 UIposition;//屏幕坐标转Rect坐标 注意四个参数RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRectTransform,//1.你要在什么上面拖拽就填写谁的RectTransformeventData.position,//2.屏幕位置eventData.pressEventCamera,//3.触发当前事件的相机(Camera)对象out UIposition//最后UI的位置);{this.transform.localPosition = UIposition;}}
}

实际效果: 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词