友達の輪 2023-12-22 09:37 采纳率: 97.4%
浏览 3
已结题

unity如何以一个Quad建立一个是坐标系

unity如何以一个Quad建立一个是坐标系
当鼠标放在Quad的左上角时显示为(0,0),移动到右下角时显示为(102,105),最大值可以自己调节,这里(102,105)是举一个例子,那么右上角可能就是(102,0),左下角可能就是(0,105)以此类推,当鼠标在这个Quad的平面内移动时,可以根据原点(0,0)点和最大值(102,105)点按比例计算出当前鼠标的二位坐标应该是多少,比如此时我鼠标放在Quad中心点位置,那现实的坐标可能就是(51,52.5),放到Quad内的其他位置也会根据最小点和最大点按比例计算当前的坐标,以此类推。

  • 写回答

2条回答 默认 最新

  • Leodong. 2023-12-22 10:02
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    要实现这个功能,首先需要创建一个Quad对象,然后监听鼠标的移动事件。当鼠标在Quad内移动时,根据鼠标的位置和Quad的大小计算出当前鼠标的二维坐标。以下是一个简单的C#代码示例:

    using UnityEngine;
    
    public class QuadCoordinateSystem : MonoBehaviour
    {
        public RectTransform quad; // 将Quad拖拽到这个变量上
        private Vector2 mousePosition; // 鼠标在Quad内的相对位置
    
        void Update()
        {
            // 获取鼠标在屏幕中的位置
            mousePosition = Input.mousePosition;
    
            // 将鼠标位置转换为Quad内的相对位置
            Vector2 relativeMousePosition = new Vector2(mousePosition.x - quad.anchoredPosition.x, mousePosition.y - quad.anchoredPosition.y);
    
            // 计算Quad的最大值
            Vector2 maxValue = new Vector2(quad.rect.width, quad.rect.height);
    
            // 根据Quad的大小和鼠标位置计算当前鼠标的二维坐标
            Vector2 currentMousePosition = new Vector2(relativeMousePosition.x / maxValue.x, relativeMousePosition.y / maxValue.y);
    
            Debug.Log("当前鼠标的二维坐标: " + currentMousePosition);
        }
    }
    

    将这个脚本添加到一个空的游戏对象上,并将Quad拖拽到脚本的quad变量上。运行游戏后,当你在Quad内移动鼠标时,控制台将输出当前鼠标的二维坐标。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月31日
  • 已采纳回答 12月23日
  • 创建了问题 12月22日

悬赏问题

  • ¥20 ESP32使用MicroPyhon开发,怎么获取485温湿度的值,温湿度计使用的鞋子是Modbus RTU
  • ¥50 苹果MGIE项目部署缺少emb权重
  • ¥15 采用ansys进行机翼在特定路径下的打孔过程中的受力分析
  • ¥15 单片机adb主机连接手机,usb调试密钥无法保存
  • ¥15 已知X和Y有以下关系,求X和Y的关系式
  • ¥15 net core 同时编辑怎么防止数据多保存了
  • ¥15 matlab做ba模型让其在ba和er规则下生长
  • ¥15 请问Quartus的Verilog代码怎么写?
  • ¥100 Mac 版foxmail 收邮件问题
  • ¥15 QWebEngineView