zoukankan      html  css  js  c++  java
  • 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);
            }
        }
    }
    
    
  • 相关阅读:
    nodejs获取服务器数据到页面
    Struts 2
    JQuery
    JDBC
    Hiberbate
    EasyUi
    JavaScript
    利用 HashSet 去过滤元素是否重复
    HTML
    MySQL
  • 原文地址:https://www.cnblogs.com/zouqiang/p/12859192.html
Copyright © 2011-2022 走看看