Unity3d 枚举某个目录下所有资源

    //枚举所有GameObject在这个目录
    //path是相对于Application.dataPath的 例如 Assets/Res/UI/
    public static IEnumerable<GameObject> EnumGameObjectAtPath(string path)
    {
        var guids = AssetDatabase.FindAssets("t:GameObject", new string[] { path });
        foreach (var guid in guids)
        {
            var p = AssetDatabase.GUIDToAssetPath(guid);
            var go = AssetDatabase.LoadAssetAtPath(p, typeof(GameObject)) as GameObject;
            if (null != go)
            {
                yield return go;
            }
        }
    }

    //枚举所有资源
    //path是相对于Application.dataPath的 例如 Assets/Res/UI/
    public static IEnumerable<T> EnumAssetAtPath<T>(string path)
        where T : Object
    {
        var guids = AssetDatabase.FindAssets("t:Object", new string[] { path });
        foreach (var guid in guids)
        {
            var p = AssetDatabase.GUIDToAssetPath(guid);
            var go = AssetDatabase.LoadAssetAtPath(p, typeof(System.Object)) as T;
            if (null != go)
            {
                yield return go;
            }
        }
    }

    //递归枚举这个目录下的GameObject的所有T类型组件
    //path是相对于Application.dataPath的 例如 Assets/Res/UI/
    public static IEnumerable<T> EnumComponentRecursiveAtPath<T>(string path)
        where T : UnityEngine.Component
    {
        var gos= EnumGameObjectAtPath(path);
        foreach (var go in gos)
        {
            var cs = go.GetComponentsInChildren<T>(true);
            foreach(var c in cs)
            {
                yield return c;
            }
        }
    }
时间: 2024-10-20 11:25:16

Unity3d 枚举某个目录下所有资源的相关文章

Unity3d:播放物理目录下的MP3文件

u3d里,是支持播放MP3文件的,但要放到资源里,不支持播放物理目录下的MP3文件.由于界面上无需显示,只是当作背景音乐来播放,所以想到调用c#的组件来解决此问题.主要代码都在附件中,根据需要加到自己的u3d程序里即可.贴士:此类问题容易造成局限性,只局限在u3d里面,u3d不支持了就判了死刑,而忘记真正的药是c#,u3d只是汤而已 源码下载 Unity3d:播放物理目录下的MP3文件,布布扣,bubuko.com

Android 如何引用com.android.internal.R目录下的资源

Android 如何引用com.android.internal.R目录下的资源 项目需求 有一个资源跟系统上的一个资源相同,想要引用它:frameworks/base/core/res/res/drawable/ic_text_dot.xml 文件名称:ic_text_dot.xml 文件的具体内容: <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2014 The Androi

android访问asset目录下的资源

android提供了AssetManager来访问asset目录下的资源, 在activity中通过getAssets()获取AssetManager 常用的api如下: 1.列举路径下的资源String[] list(String path) 2.InputStream open(asset目录下的资源路径) 下面是放问asset目录下的图片的代码 package com.example.qunzheng.customerview; import android.app.Activity; i

安卓获取Assets目录下的资源

获取Assets目录下的资源 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15

如何获取项目src目录下的资源文件

在我们编写Java的应用程序时,可能会用到一些配置文件,如config.properties,我们可以在配置文件中存储一些重要信息,例如服务器的IP地址,用户名和密码等信息. 在本篇文章当中,只是讨论如何获取到资源文件的路径,并不会对资源文件的内容进行读取. 1.资源目录:src目录和bin目录 在我们编写Java代码的过程当中,我们会把有关的资源文件(例如config.properties)放到src目录和src目录下的某个package中. 但有一点值得注意的是,虽然我们在放置资源文件的时候

res目录下的资源

res文件夹里面的多个文件夹的各自介绍(来自网上的Android开发指南中文版内容): 目录Directory 资源类型Resource Types res/anim/ XML文件,它们被编译进逐帧动画(frame by frame animation)或补间动画(tweened animation)对象 使用方法一般是 AnimationUtil.loadAnimation(R.anim.xxx) res/drawable/ .png..9.png..jpg文件,它们被编译进以下的Drawab

Android读取assets目录下的资源

1.获取资源的输入流 资源文件 sample.txt 位于 $PROJECT_HOME/assets/ 目录下,可以在 Activity 中通过 Context.getAssets().open(“sample.txt”) 方法获取输入流. 注意:如果资源文件是文本文件则需要考虑文件的编码和换行符.建议使用UTF-8和Unix换行符. 2. WebView 加载assets目录下的html文件 资源文件 sample.html 位于 $PROJECT_HOME/assets/ 目录下,可以通过以

Asp.Net配置不允许通过url方式访问目录下的资源

Asp.Net网站发布后,有部分文件为了安全性,是不能直接通过url访问获取 通常有2种做法: 1.将文件目录建立在 App_code 或者App_Data 等默认的隐藏目录下 2.将文件的目录添加到请求筛选的隐藏段里面,使文件不可直接通过url访问 在IIS配置是请求筛选--->添加隐藏段 ,在IIS里面的配置其实就是配置web.Config文件 也可以直接在web.Config文件里面配置,configuration/system.webServer/security/requestFilt

java获取程序打包成jar包/exe 同级目录下的资源文件

代码: Properties externalResourceFile = new Properties(); String jarpath = System.getProperty("user.dir") + "/config/externalConfig.properties"; try { FileInputStream in = new FileInputStream(jarpath); externalResourceFile.load(in); Syst