Unity 快速定位UI

Posted zouqiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
        }
    }
}

以上是关于Unity 快速定位UI的主要内容,如果未能解决你的问题,请参考以下文章

Unity_原型工具快速转UI工具

Unity UI代码自动生成

Unity代码分享——一个快速显示所有Sprite为Image_icon的帮助类

如何快速优化手游性能问题?从UGUI优化说起

11.unity3d 摄像机快速定位到Scene视角

Unity 在project view快速定位类和编辑器类