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);
            }
        }
    }
    
    
  • 相关阅读:
    路由
    更改HTTP头信息
    laravel 笔记
    laraven安装记录
    虚拟机Centos设置静态IP
    关于正向代理,反向代理,负载均衡的个人理解
    exce族函数详解
    【C】多线程编程笔记
    【转】Linux C 网络编程——TCP套接口编程
    MySQL 用户管理及权限管理
  • 原文地址:https://www.cnblogs.com/zouqiang/p/12859192.html
Copyright © 2011-2022 走看看