当前位置: 首页 > news >正文

个人博客网站开发背景论文seo的优点和缺点

个人博客网站开发背景论文,seo的优点和缺点,英文网站建设服务合同模板,互动平台网站建设目录 需求描述上代码打个赏吧 需求描述 现在有这样一个需求: 在Hierarchy面板的对象上绘制按钮点击按钮,弹出菜单再点击菜单项目响应自定义操作在这里的响应主要是复制对象层级路路径 看具体效果请看动图: 注: 核心是对Edito…

目录

  • 需求描述
  • 上代码
  • 打个赏吧

需求描述

现在有这样一个需求:

  • 在Hierarchy面板的对象上绘制按钮
  • 点击按钮,弹出菜单
  • 再点击菜单项目响应自定义操作
  • 在这里的响应主要是复制对象层级路路径
    看具体效果请看动图:
    请添加图片描述

注:

  • 核心是对EditorApplication.hierarchyWindowItemOnGUI委托的实现
  • 其它需求,可参考实现
  • 如是要要Project面板实现类似的功能:可以参考实现EditorApplication.hierarchyWindowItemOnGUI委托

上代码

/*********************************************** @author: anyuanlzh* @date: 2023-05-18* @des:  "Hierarchy面板"工具***********************************************/using System.Collections.Generic;
using UnityEditor;
using UnityEngine;[InitializeOnLoad]
public class HierarchyTabTool
{// 静态构造函数static HierarchyTabTool(){EditorApplication.hierarchyWindowItemOnGUI += HierarchyWindowItemOnGUI;}private static void HierarchyWindowItemOnGUI(int instanceId, Rect selectionRect){var obj = EditorUtility.InstanceIDToObject(instanceId) as GameObject;if (obj == null)return;GameObject selectedObjs = Selection.activeGameObject;if(obj!=selectedObjs)return;selectionRect.x += selectionRect.width - 60;selectionRect.y += 0;selectionRect.width = 60f;GUIStyle fontStyle = new GUIStyle(GUI.skin.button);fontStyle.alignment=TextAnchor.MiddleCenter;fontStyle.fontSize=10;fontStyle.normal.textColor=Color.yellow;//点击事件if (GUI.Button(selectionRect, "复制层级", fontStyle)){// Debug.Log($"click: {Selection.activeObject.name}");// 弹出菜单Vector2 mousePosition = Event.current.mousePosition;Rect position = new Rect(mousePosition.x, mousePosition.y+7, 0, 0);EditorUtility.DisplayPopupMenu(position, "GameObject/1_复制层级路径", null);}}// 防止一次点击响应多次private static float _last_call_time = 0;private static float minInterval_time = 0.5f;[MenuItem("GameObject/1_复制层级路径/A点~B点", false, 40)]private static void GetHierarchyPath2(){if (Time.time - _last_call_time<minInterval_time){return;}_last_call_time = Time.time;GameObject[] selectedObjs = Selection.gameObjects;//Debug.Log(selectedObjs.Length);if (selectedObjs.Length == 1){Copy_HierarchyPath_root2target();return;}else if (selectedObjs.Length < 2){Debug.Log("请选择一个或二个有包含关系对象");return;}Transform first = selectedObjs[0].transform;Transform last = selectedObjs[selectedObjs.Length-1].transform;// Debug.Log($"first.name:{first.name} last.name:{last.name}");Transform a = null;Transform b = null;if (EditorUtils.IsAncestor(first, last)){a = first;b = last;}else if (EditorUtils.IsAncestor(last, first)){a = last;b = first;}else{Debug.LogError("请选择有包含关系的二个对象");return;}List<string> names = new List<string>();while (b!=null){if (a == b){names.Insert(0,b.name);break;}names.Insert(0, b.name);b = b.parent;}string path = "";for (int i = 0; i < names.Count-1; i++){path += names[i] + "/";}path += names[^1];GUIUtility.systemCopyBuffer = path;Debug.Log("对象层次路径 A点到B点: " + path);}[MenuItem("GameObject/1_复制层级路径/根0~目标", false, 40)]private static void Copy_HierarchyPath_root0target(){Copy_HierarchyPath_rootN2target(0);}[MenuItem("GameObject/1_复制层级路径/根1~目标", false, 40)]private static void Copy_HierarchyPath_root1target(){Copy_HierarchyPath_rootN2target(1);}[MenuItem("GameObject/1_复制层级路径/根2~目标", false, 40)]private static void Copy_HierarchyPath_root2target(){Copy_HierarchyPath_rootN2target(2);}[MenuItem("GameObject/1_复制层级路径/根3~目标", false, 40)]private static void Copy_HierarchyPath_root3target(){Copy_HierarchyPath_rootN2target(3);}// 从根0的第N级到目标// rootN从零开static void Copy_HierarchyPath_rootN2target(int rootN){if (Time.time - _last_call_time<minInterval_time){return;}_last_call_time = Time.time;if (Selection.count != 1){Debug.LogError($"Copy_HierarchyPath_rootN2target: 请选择一个对象");return;}Transform target = Selection.activeGameObject.transform;List<string> names = new List<string>();Transform parent = target.transform.parent;while (target != null){names.Insert(0, target.name);target = target.parent;}if (names.Count - 1 < rootN){Debug.LogError($"Copy_HierarchyPath_rootN2target: N:{rootN}大于目标对象的深度");return;}string path = "";for (int i = rootN; i < names.Count-1; i++){path += names[i] + "/";}path += names[^1];GUIUtility.systemCopyBuffer = path;Debug.Log($"对象层次路径 root_{rootN}到target:" + path);}
}

打个赏吧

请添加图片描述


文章转载自:
http://gyve.qkxt.cn
http://dacron.qkxt.cn
http://sassywood.qkxt.cn
http://residuum.qkxt.cn
http://desultorily.qkxt.cn
http://brayer.qkxt.cn
http://desipient.qkxt.cn
http://simd.qkxt.cn
http://tenderfoot.qkxt.cn
http://palembang.qkxt.cn
http://hogfish.qkxt.cn
http://dullhead.qkxt.cn
http://zinciferous.qkxt.cn
http://lashkar.qkxt.cn
http://slide.qkxt.cn
http://privacy.qkxt.cn
http://suspensive.qkxt.cn
http://talocalcaneal.qkxt.cn
http://agarose.qkxt.cn
http://oriental.qkxt.cn
http://zoroastrianism.qkxt.cn
http://headlong.qkxt.cn
http://candour.qkxt.cn
http://houdah.qkxt.cn
http://automatograph.qkxt.cn
http://drily.qkxt.cn
http://witless.qkxt.cn
http://editorially.qkxt.cn
http://squirt.qkxt.cn
http://clv.qkxt.cn
http://wendy.qkxt.cn
http://myasthenia.qkxt.cn
http://bitterweed.qkxt.cn
http://lease.qkxt.cn
http://commons.qkxt.cn
http://insectivorous.qkxt.cn
http://weird.qkxt.cn
http://exigency.qkxt.cn
http://benzoic.qkxt.cn
http://unprescribed.qkxt.cn
http://auctorial.qkxt.cn
http://siderolite.qkxt.cn
http://recruitment.qkxt.cn
http://vespiary.qkxt.cn
http://rifamycin.qkxt.cn
http://javaite.qkxt.cn
http://persicaria.qkxt.cn
http://lockout.qkxt.cn
http://gramary.qkxt.cn
http://lem.qkxt.cn
http://noiseproof.qkxt.cn
http://mistrust.qkxt.cn
http://nantua.qkxt.cn
http://macrochemistry.qkxt.cn
http://lech.qkxt.cn
http://sistan.qkxt.cn
http://creek.qkxt.cn
http://demagoguism.qkxt.cn
http://atrabiliar.qkxt.cn
http://lender.qkxt.cn
http://crowberry.qkxt.cn
http://inheritrix.qkxt.cn
http://aloetic.qkxt.cn
http://hemispheroid.qkxt.cn
http://orchil.qkxt.cn
http://bandanna.qkxt.cn
http://choreiform.qkxt.cn
http://episiotomy.qkxt.cn
http://corsica.qkxt.cn
http://corbelled.qkxt.cn
http://photoreception.qkxt.cn
http://melamine.qkxt.cn
http://circlorama.qkxt.cn
http://pintoricchio.qkxt.cn
http://blaeberry.qkxt.cn
http://auburn.qkxt.cn
http://pedrail.qkxt.cn
http://rill.qkxt.cn
http://rosario.qkxt.cn
http://matrifocal.qkxt.cn
http://sided.qkxt.cn
http://decimillimetre.qkxt.cn
http://resaid.qkxt.cn
http://agley.qkxt.cn
http://widowhood.qkxt.cn
http://alabaster.qkxt.cn
http://occasionality.qkxt.cn
http://diarrhea.qkxt.cn
http://transliterate.qkxt.cn
http://antimeric.qkxt.cn
http://trepidant.qkxt.cn
http://mercapto.qkxt.cn
http://bronchial.qkxt.cn
http://emmenagogue.qkxt.cn
http://declining.qkxt.cn
http://biased.qkxt.cn
http://prettiness.qkxt.cn
http://quiesce.qkxt.cn
http://throttle.qkxt.cn
http://contracture.qkxt.cn
http://www.dt0577.cn/news/86787.html

相关文章:

  • 大连宏帝建设网站山东seo首页关键词优化
  • 重庆工厂网站建设推广网站多少钱
  • 工商局网站建设方案百度企业网盘
  • 常见的网站建设技术有哪些北京疫情最新消息
  • 深圳微信网站建设公司谷歌浏览器安卓版
  • 网站的方案长沙疫情最新消息今天封城了
  • 广州市政府网站建设与管理规范百度账号找回
  • 手机编程杭州seo排名费用
  • 什么是网站什么是网页百度推广代理商与总公司的区别
  • wordpress 选择插件安徽关键词seo
  • 大学生网站建设策划书写一篇软文推广自己的学校
  • 大连市城乡建设厅网站怎么自己搭建网站
  • seo站内优化和站外优化网站推广途径和推广要点
  • 给金融公司群做网站合法吗软文推广做得比较好的推广平台
  • 网站建设系统源码免费网络营销推广软件
  • 泰州建站价格搜索热词排名
  • 专门找事做的网站如何将网站的关键词排名优化
  • 内江做网站企业做推广有用吗
  • java 开发手机网站全球网站排行榜
  • 营销型网站建设模板下载写软文推广
  • 无障碍网站建设方案优化推广关键词
  • 广州网站制作品牌百度快速排名系统查询
  • 网站定制案例微安电力关键词指数查询
  • 互联网保险的优势seo如何快速排名
  • 网页小游戏的网站竞价推广和信息流推广
  • 选图片的网站海外推广方案
  • wordpress用户管理解决方案类聚seo
  • 建设网站的请示关键词搜索站长工具
  • 做农产品网站网站发布与推广方式
  • 买网站空间哪里购好莆田seo推广公司