http://www.xiaobao1993.com/886.html

来源与小宝个人笔记【稍作修改】

//使用  Prefabs/Resources/stone1

ResourceMgr.GetInstance().CreateGameObject ("stone1",image,true);

using UnityEngine;
using System.Collections; public class ResourceMgr : MonoBehaviour
{
#region 初始化
private static ResourceMgr mInstance; /// <summary>
/// 获取资源加载实例
/// </summary>
/// <returns></returns>
public static ResourceMgr GetInstance()
{
if(mInstance == null)
{
mInstance = new GameObject("_ResourceMgr").AddComponent<ResourceMgr>();
}
return mInstance;
}
private ResourceMgr()
{
Debug.LogError ("---------------");
hashtable = new Hashtable();
}
#endregion /// <summary> 资源缓存容器 </summary>
private Hashtable hashtable;
/// <summary>
/// Load 资源
/// </summary>
/// <typeparam name="T">资源类型</typeparam>
/// <param name="path">资源路径</param>
/// <param name="cacheAsset">是否要缓存资源</param>
/// <returns></returns>
public T Load<T>(string path, bool cache) where T : Object
{
if (hashtable.Contains(path))
{
return hashtable[path] as T;
} Debug.Log(string.Format("Load assset frome resource folder,path:{0},cache:{1}", path, cache));
T assetObj = Resources.Load<T>(path);
if (assetObj == null)
{
Debug.LogWarning("Resources中找不到资源:" + path);
}
if (cache)
{
hashtable.Add(path, assetObj);
Debug.Log("Asset对象被缓存,Resource'path=" + path);
}
return assetObj;
} /// <summary>
/// 创建Resource中GameObject对象
/// </summary>
/// <param name="path"资源路径</param>
/// <param name="cacheAsset">是否要缓存Asset对象</param>
/// <returns></returns>
public GameObject CreateGameObject(string path,GameObject parent, bool cache)
{
GameObject assetObj = Load<GameObject>(path, cache);
GameObject go = Instantiate(assetObj) as GameObject;
if (go != null && parent != null)
{
Transform t = go.transform;
t.parent = parent.transform;
t.localPosition = Vector3.zero;
t.localRotation = Quaternion.identity;
t.localScale = Vector3.one;
go.layer = parent.layer;
}
if (go == null)
{
Debug.LogWarning("从Resource创建对象失败:" + path);
}
return go;
} // Use this for initialization
void Start () { } // Update is called once per frame
void Update () { }
}

  

Prefabs实例化 ResourceMgr的更多相关文章

  1. Unity3D热更新之LuaFramework篇[03]--prefab加载和Button事件

    在上一篇文章 Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板 中,我介绍了LuaFramework加载面板的方法,但这个方法并不适用于其它Prefab资源,在这套框 ...

  2. Unity Prefabs

    通过上一期的学习,我们知道为了如何向场景中添加一个物体.问题来了,如果需要对这个立方体进行修改应该怎么做呢?那我们肯定就得修改这段代码,能不能将立方体本身从我们的开发中单独提出来呢?这就涉及到我们今天 ...

  3. Spring中Bean的实例化

                                    Spring中Bean的实例化 在介绍Bean的三种实例化的方式之前,我们首先需要介绍一下什么是Bean,以及Bean的配置方式. 如果 ...

  4. [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别

    1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...

  5. 对C#泛型实例化对像

    public class A { } public class B<T> { public static T Get() { //在这一块如何实例化T这个对象呢?如果用default(T) ...

  6. spring实例化bean的三种方式

    公共使用的实体

  7. 【EntityFramework Core】实体实例化注入

    由于逻辑需要,我希望能在EF Core实例化实体时,拿到实体并执行相关代码,所以我就研究了一番EF Core,得到以下方法. 1.创建实体初始化类,继承EntityMaterializerSource ...

  8. Cesium原理篇:6 Render模块(6: Instance实例化)

    最近研究Cesium的实例化,尽管该技术需要在WebGL2.0,也就是OpenGL ES3.0才支持.调试源码的时候眼前一亮,发现VAO和glDrawBuffers都不是WebGL1.0的标准函数,都 ...

  9. [译]Godot系列教程三 - 场景实例化(续)

    场景实例化(续) 要点 场景实例化带来很多便利的用法,总体来说有: 将场景细分,更便于管理 相对于某些引擎中的Prefab组件更灵活,并且在许多方面更强大 是一种设计更复杂的游戏流程甚至UI的方式 这 ...

随机推荐

  1. PCRE的安装及使用

    摘自http://www.cnblogs.com/renhao/archive/2011/08/17/2143264.html PCRE的安装及使用 1.主页地址:http://www.pcre.or ...

  2. Unity 移动MM自签名方式

    在使用Unity接移动MM SDK的时候,最后有一个签名.  主要是把计费文件和版权文件放入APK的根目录.  搞了半天才知道前来这么简单..... 软件使用: apk签名工具apktool

  3. Unity 预处理命令

    我们经常在代码里面写Debug.Log()调试代码,游戏后门代码.这些代码在发布时无意义的,我们就需要慢慢的删除掉它们(很痛苦),有什么办法让它们在编译的时候并不加入编译代码中呢?  预处理命令..比 ...

  4. POJ3071:Football(概率DP)

    Description Consider a single-elimination football tournament involving 2n teams, denoted 1, 2, …, 2 ...

  5. 用了 CSDN 的 markdown 编辑器吐槽下~~

    吐槽一下.. . 第一次用 CSDN 的这个 markdown 编辑器,首先感官上看起来还是非常大气相比曾经那个 HTML 编辑器实在时上了N个档次,但实际使用的体验实在是比較糟糕的.希望能改进下哦: ...

  6. 详解AJAX核心 —— XMLHttpRequest 对象 (上)

    我要说的内容都是非常基础的内容,高手就免看了,如果看了欢迎给点意见啊.新手或者对低层还不是很了解的人可以看看,帮助理解与记忆. XMLHttpRequest 对象是AJAX功能的核心,要开发AJAX程 ...

  7. UINavigationController  和 UITabBarController

    UINavigationController当设置根控制器的时候,意思就是把根控制器压入栈内,当我们push的时候,我们把下一个控制器压入栈内,当我们pop的时候把上面的控制器的内存释放   UITa ...

  8. queue 之团队队列(摘)

    有t个团队的人正在排一个长队.每次新来一个人时,如果他有队友在排队,那么这个新人会插队到最后一个队友的身后.如果没有任何一个队友排队,则他会排到长队的队尾. 输入每个团队中所有队员的编号,要求支持如下 ...

  9. const的一些总结

    const的一些总结 采用const符号常量写出来的代码更容易维护,有些函数只读不写: 1 常变量: const 类型说明符 变量名 2 常引用: const 类型说明符 &变量名 3 常成员 ...

  10. jQuery插件的点点滴滴

    说起jQuery插件,很多人的脑海种已经有了一定的雏形,仿佛感觉仅仅就是那样子,事实呢?当你看了Bootstrap.js,品读了slidesjs,观摩了jquery.cycle2.js,不禁发现,原来 ...