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

各种网站推广是怎么做的百度指数免费添加

各种网站推广是怎么做的,百度指数免费添加,共青团智慧团建登录入口,进口博览会2022上海注意:考虑到编辑器扩展的内容比较多,我将编辑器扩展的内容分开,并全部整合放在【unity游戏开发——编辑器扩展】专栏里,感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言一、获取当前选择的Object,及任意对象1、介…

注意:考虑到编辑器扩展的内容比较多,我将编辑器扩展的内容分开,并全部整合放在【unity游戏开发——编辑器扩展】专栏里,感兴趣的小伙伴可以前往逐一查看学习。

文章目录

  • 前言
  • 一、获取当前选择的Object,及任意对象
    • 1、介绍
    • 2、示例
  • 二、获取当前选择的GameObject
    • 1、介绍
    • 2、示例
  • 三、获取当前选择的Transform
    • 1、介绍
    • 2、示例
  • 四、判断某个对象是否被选中
    • 1、介绍
    • 2、示例
  • 五、筛选选中的内容
    • 1、介绍
    • 2、示例
  • 六、当选中变化时会调用的委托
    • 1、介绍
    • 2、示例
  • 专栏推荐
  • 完结

前言

Selection公共类主要是帮助我们在当前Unity编辑器中获取到选择的对象的,我们可以利用它对选中对象进行一些处理。只能用于编辑器开发中。

一、获取当前选择的Object,及任意对象

1、介绍

  • Selection.activeObject:获取当前在面板上选择的游戏物体Object,未选择则返回Null。选择多个则返回第一个选择的游戏物体。
  • Selection.objects:获取当前在面板上选择的物体数组,未选择则返回Null。

2、示例

using System.Text;
using UnityEditor;
using UnityEngine;public class EditorSelectionWindow : EditorWindow
{private StringBuilder str = new StringBuilder("没有选择");private StringBuilder strs = new StringBuilder("没有选择");[MenuItem("编辑器拓展/自定义窗口拓展/Selection自定义窗口")]private static void OpenEditorGUIUtilityWindow(){EditorSelectionWindow win = EditorWindow.GetWindow<EditorSelectionWindow>("Selection知识面板");win.Show();}private void OnGUI(){// 获取当前选择的Objectif (GUILayout.Button("获取当前选择的Object的名字")){if (Selection.activeObject != null){str.Clear();str.Append(Selection.activeObject.name);if (Selection.activeObject is GameObject)Debug.Log("它是游戏对象");else if (Selection.activeObject is Texture)Debug.Log("它是一张纹理");else if (Selection.activeObject is TextAsset)Debug.Log("它是一个文本");elseDebug.Log("它是其他类型的资源");}else{str.Clear();str.Append("没有选择");}}EditorGUILayout.LabelField("当前选择的对象", str.ToString());// 获取当前选择的所有Objectif (GUILayout.Button("获取当前选择的所有Object的名字")){if (Selection.count != 0){strs.Clear();for (int i = 0; i < Selection.objects.Length; i++){strs.Append(Selection.objects[i].name + "|");}}else{strs.Clear();strs.Append("没有选择");}}EditorGUILayout.LabelField("当前选择的所有Object对象", strs.ToString());}
}

效果
在这里插入图片描述

二、获取当前选择的GameObject

1、介绍

  • Selection.activeGameObject:获取当前在面板上选择的游戏物体GameObject,未选择或者选择的不是游戏对象则返回Null,选择多个则返回第一个选择的游戏物体。
  • Selection.gameObjects:获取当前选择的所有GameObject数组,未选择则返回Null。

2、示例

using System.Text;
using UnityEditor;
using UnityEngine;public class EditorSelectionWindow : EditorWindow
{private StringBuilder str = new StringBuilder("没有选择");private StringBuilder strs = new StringBuilder("没有选择");[MenuItem("编辑器拓展/自定义窗口拓展/Selection自定义窗口")]private static void OpenEditorGUIUtilityWindow(){EditorSelectionWindow win = EditorWindow.GetWindow<EditorSelectionWindow>("Selection知识面板");win.Show();}private void OnGUI(){// 获取当前选择的GameObjectif (GUILayout.Button("获取当前选择的GameObject的名字")){if (Selection.activeGameObject != null){str.Clear();str.Append(Selection.activeGameObject.name);}else{str.Clear();str.Append("没有选择");}}EditorGUILayout.LabelField("选择的GameObject", str.ToString());// 获取当前选择的所有GameObjectif (GUILayout.Button("获取当前选择的所有GameObject的名字")){if (Selection.count != 0){strs.Clear();for (int i = 0; i < Selection.gameObjects.Length; i++){strs.Append(Selection.gameObjects[i].name + "|");}}else{strs.Clear();strs.Append("没有选择");}}EditorGUILayout.LabelField("选择的所有GameObject", strs.ToString());        }
}

效果
在这里插入图片描述

三、获取当前选择的Transform

1、介绍

  • Selection.activeTransform:获取当前在面板上选择的游戏物体的Transform,只能获取Hierarchy窗口的对象,未选择则返回Null,选择多个则返回第一个选择的游戏物体。
  • Selection.transforms:获取当前选择的所有Transform,未选择则返回Null。

2、示例

using System.Text;
using UnityEditor;
using UnityEngine;public class EditorSelectionWindow : EditorWindow
{private StringBuilder str = new StringBuilder("没有选择");private StringBuilder strs = new StringBuilder("没有选择");[MenuItem("编辑器拓展/自定义窗口拓展/Selection自定义窗口")]private static void OpenEditorGUIUtilityWindow(){EditorSelectionWindow win = EditorWindow.GetWindow<EditorSelectionWindow>("Selection知识面板");win.Show();}private void OnGUI(){// 获取当前选择的Transformif (GUILayout.Button("获取当前选择的Transform的名字")){if (Selection.activeTransform != null){str.Clear();str.Append(Selection.activeTransform.name);//修改位置Selection.activeTransform.position = new Vector3(10, 10, 10);}else{str.Clear();str.Append("没有选择");}}EditorGUILayout.LabelField("选择的Transform", str.ToString());// 获取当前选择的所有Transformif (GUILayout.Button("获取当前选择的所有Transform的名字")){if (Selection.count != 0){strs.Clear();for (int i = 0; i < Selection.transforms.Length; i++){strs.Append(Selection.transforms[i].name + "|");}}else{strs.Clear();strs.Append("没有选择");}}EditorGUILayout.LabelField("选择的所有Transform", strs.ToString());        }
}

效果
在这里插入图片描述

四、判断某个对象是否被选中

1、介绍

Contains:判断某个对象是否被选中(多选中存在也算)

2、示例

using UnityEditor;
using UnityEngine;public class EditorSelectionWindow : EditorWindow
{private Object obj;[MenuItem("编辑器拓展/自定义窗口拓展/Selection自定义窗口")]private static void OpenEditorGUIUtilityWindow(){EditorSelectionWindow win = EditorWindow.GetWindow<EditorSelectionWindow>("Selection知识面板");win.Show();}private void OnGUI(){// 判断某个对象是否被选中obj = EditorGUILayout.ObjectField("用于判断是否被选中的对象", obj, typeof(GameObject), true);if (GUILayout.Button("判断对象是否被选中")){if (Selection.Contains(obj))Debug.Log("对象有被选中");elseDebug.Log("对象没有被选中");}}
}

效果
在这里插入图片描述

五、筛选选中的内容

1、介绍

  • 从当前选择对象中,筛选出想要的内容API
    Selection.GetFiltered(类型, 筛选模式)
    或者
    Selection.GetFiltered<类型>(筛选模式)
    
  • 筛选模式:SelectionMode
    • Unfiltered: 不过滤
    • TopLevel: 只获取最上层对象,子对象不获取
    • Deep: 父对象、子对象都获取
    • ExcludePrefab: 排除预设体
    • Editable: 只选择可编辑的对象
    • OnlyUserModifiable: 仅用户可修改的内容
    • Assets: 只返回资源文件夹下的内容
    • DeepAssets: 如果存在子文件夹,其中的内容也获取
  • 如果要混用 位或 | 即可

2、示例

using UnityEditor;
using UnityEngine;public class EditorSelectionWindow : EditorWindow
{private Object obj;[MenuItem("编辑器拓展/自定义窗口拓展/Selection自定义窗口")]private static void OpenEditorGUIUtilityWindow(){EditorSelectionWindow win = EditorWindow.GetWindow<EditorSelectionWindow>("Selection知识面板");win.Show();}private void OnGUI(){// 筛选选中的内容if(GUILayout.Button("筛选选中的内容")){Object[] objs = Selection.GetFiltered<Object>(SelectionMode.Assets | SelectionMode.DeepAssets);for (int i = 0; i < objs.Length; i++){Debug.Log(objs[i].name);}}}
}

效果
在这里插入图片描述

六、当选中变化时会调用的委托

1、介绍

Selection.selectionChanged += 函数;//选择的物体变化时调用

2、示例

using UnityEditor;
using UnityEngine;public class EditorSelectionWindow : EditorWindow
{private Object obj;[MenuItem("编辑器拓展/自定义窗口拓展/Selection自定义窗口")]private static void OpenEditorGUIUtilityWindow(){EditorSelectionWindow win = EditorWindow.GetWindow<EditorSelectionWindow>("Selection知识面板");win.Show();}private void SelectionChanged(){Debug.Log("选择的对象变化了");}private void OnEnable(){Selection.selectionChanged += SelectionChanged;}private void OnDestroy(){Selection.selectionChanged -= SelectionChanged;}
}

效果
在这里插入图片描述


专栏推荐

地址
【unity游戏开发入门到精通——C#篇】
【unity游戏开发入门到精通——unity通用篇】
【unity游戏开发入门到精通——unity3D篇】
【unity游戏开发入门到精通——unity2D篇】
【unity实战】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架/工具集开发】
【unity游戏开发——模型篇】
【unity游戏开发——InputSystem】
【unity游戏开发——Animator动画】
【unity游戏开发——UGUI】
【unity游戏开发——联网篇】
【unity游戏开发——优化篇】
【unity游戏开发——shader篇】
【unity游戏开发——编辑器扩展】

完结

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!
在这里插入图片描述

http://www.dtcms.com/wzjs/211774.html

相关文章:

  • 网站页脚怎么做能好看点网络舆情处置的五个步骤
  • 创意网络广告seo推广是什么意思
  • 动态网页的制作seo职位要求
  • 网站建设新发展网盘资源搜索神器
  • 深圳品牌馆设计装修公司seo建站公司推荐
  • 芜湖建设厅官方网站网络推广平台有哪些公司
  • 微信网站这么做百度竞价推广效果怎么样
  • soho的网站怎么做个人网站设计作品
  • 江门网站建设推荐百度商家入驻
  • 现在最好的企业网站管理系统网上销售平台怎么做
  • 门户网站模块武汉网站排名提升
  • 长沙疫情最新情况轨迹查询深圳搜索引擎优化收费
  • wordpress清空数据库表襄阳seo推广
  • 电子商务网站建设的方法有哪些花都网站建设公司
  • 石家庄做网站电话有哪些网站可以免费发布广告
  • 怎么做阿里妈妈推广网站全网整合营销推广系统
  • 工商名称预先核准官网aso优化技巧
  • 怎么在百度上做单位网站如何创建网站?
  • 怎么用txt做网站全球搜索引擎入口
  • 网站开发多少钱一个月windows优化大师有哪些功能
  • 做粤菜的视频网站sem和seo有什么区别
  • 什么程序做网站安全杭州网站定制
  • 网站建设的费用包括成都网站设计公司
  • app开发流程 网站开发公司推广文案
  • 工商登记代理代办山东seo百度推广
  • 企业网站模板谷歌全球营销
  • 网站开发好吗怎么弄属于自己的网站
  • 深圳手机商城网站设计宁波江北区网站推广联系方式
  • 网站建设龙岗如何制作一个网页页面
  • 唱片公司网站模板免费发广告的网站大全