- 最后登录
- 2013-9-29
- 注册时间
- 2012-8-20
- 阅读权限
- 90
- 积分
- 6371
- 纳金币
- 6372
- 精华
- 0
|
时间过得很快,从开始接触unity3d到现在已经有一年半了,非常感谢龚老师带我们学习Unity,不然,我现在会是在干什么呢,PHP又或是ASP.NET? 出来工作这么久了,感觉自己进步很慢,可能是我天生比较笨,也有可能是学习方法不对。我更希望是后者,嘻嘻~~这样的话,我是否应该多总结,总结自己每天学到了什么,在此就借用空间日志吧。
这段时间有关注Unity3D插件方面的应用,写了个小插件批量更改Project或Hierarchy里的Tag或Layer,废话不多说,直接贴代码:
//-----------------------------------------------------------------
// ChangeTagOrLayer (7-24-2011)
// Created by LKP
// QQ: 121063550
//-----------------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEditor;
/// <summary>
/// 批量更改场景中的Tag或Layer
/// 使用方法: 在Assets文件夹下创建Editor文件夹,将复制或拷贝该代码保存成ChangeTagOrLayer.cs放入Editor文件夹,
/// 在Hierarchy或Project中选择多个物体后,选择菜单上的Custom -> Change Tag Of Selected Objects,
/// 选择要更改的Tag 或 Layer,点击Set Tag 或 Set Layer,批量更改Tag/Layer成功
/// </summary>
public class ChangeTagOrLayer : EditorWindow
{
/// <summary>
/// 存储的Tag值
/// </summary>
private static string tagStr = string.Empty;
/// <summary>
/// 存储Layer值
/// </summary>
private static int layInt = 0;
/// <summary>
/// 创建、显示窗体
/// </summary>
[@MenuItem("Custom/ChangeTagOrLayer")]
private static void Init()
{
ChangeTagOrLayer window = (ChangeTagOrLayer)GetWindow(typeof(ChangeTagOrLayer), ***e, "ChangeTagOrLayer");
window.Show();
}
/// <summary>
/// 显示窗体里面的内容
/// </summary>
private void OnGUI()
{
tagStr = EditorGUILayout.TagField("Tag for Objects:", tagStr);
if (GUILayout.Button("Set Tag"))
SetTags();
layInt = EditorGUILayout.LayerField("Layer for Objects:", layInt);
if (GUILayout.Button("Set Layer"))
SetLayers();
}
/// <summary>
/// 设置所选GameObject的Tag
/// </summary>
private static void SetTags()
{
foreach (GameObject go in Selection.gameObjects)
go.tag = tagStr;
}
/// <summary>
/// 设置所选GameObject的Layer
/// </summary>
private static void SetLayers()
{
foreach (GameObject go in Selection.gameObjects)
go.layer = layInt;
}
}
|
|