前段时间策划们想知道UI预制件中使用了哪些音效

N多预制件、N多音效!!

如果纯人工整理的话这还不累成狗?

累成狗不说,还容易出错

所以获取音频剪辑小工具就诞生了,将策划从死亡边缘拉了回来

我们先看一下相关API手册:http://game.ceeger.com/Script/EditorUtility/EditorUtility.CollectDependencies.html

这玩意可好用了,之前也用它做过获取预制件公共资源工具

看看名字:“收集依赖关系”

那还不简单明了了,有依赖关系的东西都能获取过来嘛

我写了个方法,支持获取任意类型

这个方法你可以直接copy去用,不用自己写的。

使用方法也很简单,在这里我提供一个完整的获取预制件音频剪辑的例子。上代码咯

 #region HeadComments
/* ========================================================================
* Copyright (C) 2015 Arthun
*
* 作 者:Arthun
* 文件名称:ArthunTools
* 功 能:升哥哥工具包
* 创建时间:2015/09/11 2:15:20
* 版 本:v1.0.0
*
* [修改日志]
* 修改者: 时间: 修改内容:
*
* =========================================================================
*/
#endregion using System.Collections.Generic;
using UnityEditor;
using UnityEngine; public class ArthunTools : EditorWindow
{
/// 音频剪辑信息 <summary>
///
/// </summary>
public class AudioClipInfo
{
public string prefab = "";
public string audio = "";
} /// 选中预制件(可多选)后按 Alt + G 键获取 <summary>
///
/// </summary>
[MenuItem("Arthun Tools/Get Select Prefabs Info &G")]
static void GetSelectPrefab()
{
GameObject[] gos = Selection.gameObjects; Debug.Log("getCount:" + gos.Length.ToString()); if (gos.Length == )
return; List<AudioClipInfo> audioClipsInfo = new List<AudioClipInfo>();
foreach (GameObject go in gos)
{
#region 依赖关系获取音频
List<AudioClip> audioClips = GetPrefabDepe<AudioClip>(go); foreach (AudioClip ac in audioClips)
{
if (ac != null)
{
AudioClipInfo info = new AudioClipInfo();
info.prefab = go.name;
info.audio = ac.name;
audioClipsInfo.Add(info);
}
}
#endregion
} foreach (AudioClipInfo info in audioClipsInfo)
{
Debug.Log(string.Format("prefab:{0} audio:{1}", info.prefab, info.audio));
} Debug.Log("soundCount:" + audioClipsInfo.Count.ToString());
} /// 获取预制件依赖 <summary>
///
/// </summary>
/// <typeparam name="T">欲获取的类型</typeparam>
/// <param name="go"></param>
/// <returns></returns>
static List<T> GetPrefabDepe<T>(GameObject go)
{
List<T> results = new List<T>();
Object[] roots = new Object[] { go };
Object[] dependObjs = EditorUtility.CollectDependencies(roots);
foreach (Object dependObj in dependObjs)
{
if (dependObj != null && dependObj.GetType() == typeof(T))
{
results.Add((T)System.Convert.ChangeType(dependObj, typeof(T)));
}
} return results;
}
}

文中不足之处欢迎批评指正

本文链接:http://www.cnblogs.com/shenggege/p/4799801.html

unity3d 依赖关系获取预制件任意资源的更多相关文章

  1. 大数据学习day23-----spark06--------1. Spark执行流程(知识补充:RDD的依赖关系)2. Repartition和coalesce算子的区别 3.触发多次actions时,速度不一样 4. RDD的深入理解(错误例子,RDD数据是如何获取的)5 购物的相关计算

    1. Spark执行流程 知识补充:RDD的依赖关系 RDD的依赖关系分为两类:窄依赖(Narrow Dependency)和宽依赖(Shuffle Dependency) (1)窄依赖 窄依赖指的是 ...

  2. [Unity3d][NGUI]两种思路解决AssetBundle的依赖关系.

    接上文. 使用上文中的AssetBundle打包方式生成的文件包括了依赖关系中的文件. 一般的使用中并不会发现什么问题. 可是当配合NGUI的时候,使用dynamicFont时打包AssetBundl ...

  3. 【Unity3D技术文档翻译】第1.4篇 AssetBundle 依赖关系

    上一章:[Unity3D技术文档翻译]第1.3篇 创建 AssetBundles 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced Develo ...

  4. Unity -- AssetBundle(本地资源加载和加载依赖关系)

    1.本地资源加载 1).建立Editor文件夹 2).建立StreamingAssets文件夹和其Windows的子文件夹 将下方第一个脚本放入Editor 里面 脚本一  资源打包AssetBund ...

  5. spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象

    相关 知识 >>> 相关 练习 >>> 实现要求: 在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXm ...

  6. [Unity3d][NGUI]打包NGUI预制件成Assetbundle 两种思路.

    http://www.58player.com/blog-2537-85030.html 接上文,项目中因为需要UI热更新,所以我使用了AssetBundle这个解决方案.               ...

  7. Spark之RDD依赖关系及DAG逻辑视图

    RDD依赖关系为成两种:窄依赖(Narrow Dependency).宽依赖(Shuffle Dependency).窄依赖表示每个父RDD中的Partition最多被子RDD的一个Partition ...

  8. Spring 3.x jar 包详解 与 依赖关系

    以下的内容我会持续更新(当然是我有新发现的时候); 以下内容是我在网上搜索.整理.修改的而成的内容.由于很多内容都是转载了,无法追溯到源头,因此无法一一对原作者进行道谢. 这几天,我查阅大量的官方的文 ...

  9. Gradle用户指南(章8:依赖关系管理基础)

    章8:依赖关系管理基础 本章将介绍一些gradle依赖关系管理的基础 什么是依赖关系管理? 简略的说,依赖管理是由两部分组成的.首先,gradle需要知道你要构建或者运行的项目,以便找到它们.我们将这 ...

随机推荐

  1. MongoDB学习笔记——数据库安装及配置

    MongoDB数据库安装 MongoDB官方下载地址:https://www.mongodb.com/download-center 首先需要根据Windows版本选择正确的MongoDB版本进行安装 ...

  2. SSH服务器拒绝了密码,xshell连不上虚拟机怎么办

    用Xshell链接虚拟机的时候,出现下面情况: 这是sshd的设置不允许root用户用密码远程登录 解决方案: 修改 vim /etc/ssh/sshd_config 找到# Authenticati ...

  3. Ubuntu Server安装图形界面全过程

    转载自:http://blog.csdn.net/sunbaigui/article/details/6624110, http://mikewolfli.blog.163.com/blog/stat ...

  4. nyoj 712 探 寻 宝 藏--最小费用最大流

    问题 D: 探 寻 宝 藏 时间限制: 1 Sec  内存限制: 128 MB 题目描述 传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物.某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处处有 ...

  5. .net framework 4.6.2 下载

    .net framework   .net framework版本: 4.6.2 File Name: NDP462-KB3151800-x86-x64-AllOS-ENU.exe 发布日期: 201 ...

  6. matlab ASCII 格式导入

    matlab ASCII 格式导入 可以用fprintf函数,来代替save函数啊比如现在我有一个变量a=[0.1223 345.4544]如果我想保存它的话,可以用下面的程序:fid = fopen ...

  7. dba诊断之lock

    --产生锁的详细信息 select a.session_id, c.SERIAL#,d.spid, os_user_name, b.object_name,locked_mode,    c.sql_ ...

  8. [转]ionic项目之上传下载数据

    本文转自:http://blog.csdn.net/superjunjin/article/details/44158567 一,首先是上传数据 记得在angularjs的controller中注入$ ...

  9. [转]移动web开发中meta标签作用

    今天在尝试做移动页面的时候遇到了一个问题,<meta content="telephone=no,email=no" name="format-detection& ...

  10. 【读书笔记《Android游戏编程之从零开始》】18.游戏开发基础(碰撞检测)

    1.矩形碰撞 所谓矩形碰撞,就是利用两个矩形之间的位置关系来进行判断,如果矩形的像素在另外一个矩形之中,或者之上都可以认为这两个矩形发生了碰撞. 如果单纯的去考虑哪些情况会判定两个矩形发生碰撞,倒不如 ...