Unity 快速定位UI

Unity 快速定位UI

问题由来

  • 当项目UI层级特别多的时候

  • 想找快速定位UI的位置非常麻烦

使用方式

  • 运行状态下

  • 鼠标移动到指定UI位置

  • 快捷键Ctrl+F

源码

using System;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using UnityEngine.EventSystems;

public class QuickPositioningUITool : Editor
{
    [MenuItem("ZQFramwork/快速定位UI %f", false, 0)]
    public static void QuickPositioning()
    {
        if (Application.isPlaying == false)
        {
            return;
        }

        //使焦点移动到Game视图
        Type gameViewType = typeof(Editor).Assembly.GetType("UnityEditor.GameView");
        EditorWindow window = EditorWindow.GetWindow(gameViewType);
        window.Focus();


        PointerEventData pointerEventData = new PointerEventData(EventSystem.current)
        {
            position = Input.mousePosition
        };

        List<RaycastResult> raycastResults = new List<RaycastResult>();

        //获取鼠标位置所有碰撞对象
        EventSystem.current.RaycastAll(pointerEventData, raycastResults);

        if (raycastResults.Count > 0)
        {
            //选择第一个对象
            Selection.activeGameObject = raycastResults[0].gameObject;

            EditorGUIUtility.PingObject(raycastResults[0].gameObject);
        }
    }
}

posted @   邹强  阅读(756)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2017-05-09 Unity 继承MonoBehaviour脚本 执行顺序 详解
点击右上角即可分享
微信分享提示