Unity3D通过脚本修改游戏对象图标Select Icon
来源:互联网 发布:专门看美剧的软件 编辑:程序博客网 时间:2024/05/16 13:00
本文固定连接:http://blog.csdn.net/u013108312/article/details/53811458
购买unity3d视频链接:http://mp.weixin.qq.com/s/8RN8bNqG5aD0cSqeWbRL5A
新建 IconManager.cs
using System;using System.Reflection;using UnityEditor;using UnityEngine;/// <summary>/// 对象Icon管理设置/// </summary>public class IconManager{ #region 数据定义 private static GUIContent[] labelIcons; private static GUIContent[] largeIcons; /// <summary> /// Label类型icon 显示文字的 /// </summary> public enum LabelIcon { Gray = 0, Blue, Teal, Green, Yellow, Orange, Red, Purple } /// <summary> /// 其他icon不显示文字 /// </summary> public enum Icon { CircleGray = 0, CircleBlue, CircleTeal, CircleGreen, CircleYellow, CircleOrange, CircleRed, CirclePurple, DiamondGray, DiamondBlue, DiamondTeal, DiamondGreen, DiamondYellow, DiamondOrange, DiamondRed, DiamondPurple } #endregion #region 外部接口 public static void SetIcon(GameObject gObj, LabelIcon icon) { if (labelIcons == null) { labelIcons = GetTextures("sv_label_", string.Empty, 0, 8); } SetIcon(gObj, labelIcons[(int)icon].image as Texture2D); } public static void SetIcon(GameObject gObj, Icon icon) { if (largeIcons == null) { largeIcons = GetTextures("sv_icon_dot", "_pix16_gizmo", 0, 16); } SetIcon(gObj, largeIcons[(int)icon].image as Texture2D); } private static void SetIcon(GameObject gObj, Texture2D texture) { var ty = typeof(EditorGUIUtility); var mi = ty.GetMethod("SetIconForObject", BindingFlags.NonPublic | BindingFlags.Static); mi.Invoke(null, new object[] { gObj, texture }); } #endregion #region 内部 private static GUIContent[] GetTextures(string baseName, string postFix, int startIndex, int count) { GUIContent[] guiContentArray = new GUIContent[count]; var t = typeof(EditorGUIUtility); var mi = t.GetMethod("IconContent", BindingFlags.Public | BindingFlags.Static, null, new Type[] { typeof(string) }, null); for (int index = 0; index < count; ++index) { guiContentArray[index] = mi.Invoke(null, new object[] { baseName + (object)(startIndex + index) + postFix }) as GUIContent; } return guiContentArray; } #endregion}
测试:
IconManager.SetIcon(obj, IconManager.LabelIcon.Blue);
1 0
- Unity3D通过脚本修改游戏对象图标Select Icon
- [unity3d]通过C#脚本操作游戏对象
- Android 修改应用图标icon
- MFC 修改icon exe图标
- Unity3D脚本:修改webplayer发布后logo图标的方法
- 【Unity3D入门教程】使用C#脚本控制游戏对象
- Ext.Net TreePanel 修改Icon图标
- 百度地图-修改marker图标(icon)
- 百度地图-修改marker图标(icon)
- 百度地图-修改marker图标(icon)
- extjs 树的icon图标修改
- 百度地图-修改marker图标(icon)
- 使用ICON动态修改exe文件图标
- [洪流学堂]Hololens修改图标icon
- 修改游戏图标
- Unity3D修改脚本模板
- unity3d 获取游戏对象
- ICON图标,
- 从C++到java(二)
- 蓝鸥iOS从零基础到精通就业-C语言入门 15函数结构体练习
- 解决IE下不支持new Date()带参数的问题
- Centos7 使用lightdm和tigervnc-server建立VNC服务器
- 自定义样式和时长的Toast(AndroidToastUtil)
- Unity3D通过脚本修改游戏对象图标Select Icon
- JavaScript学习笔记 CH.2 SEC.6 条件判断
- js常见用户交互事件处理
- [kuangbin带你飞]专题十 匹配问题 K - Treasure Exploration(最小边覆盖)(二分图匹配)
- max与group by连用
- (九)C语言数组的取值,取地址。
- ORA-01658: 无法为表空间 MAXDATA 中的段创建 INITIAL 区
- Jdk1.8中的HashMap实现原理
- sina爬虫