1 using System.Collections;
2 using System.Collections.Generic;
3 using UnityEngine;
4
5 public class ResourcesManager
6 {
7 //如果说当前资源之前没有加载过的话,那么加载一遍,并且将该资源记录下来
8 //如果当前资源之前 加载过的话,那么直接使用之前 加载过的资源
9 static Dictionary<string, GameObject> resDic = new Dictionary<string, GameObject>();
10
11 //非泛型用于加载预置体对象
12 public static GameObject Load(string path)
13 {
14 if (resDic.ContainsKey(path))
15 {
16 return resDic[path];
17 }
18
19 // var goPrefab = Resources.Load("Prefab//BagUnit") as GameObject;
20 GameObject go = Resources.Load(path) as GameObject;
21 resDic[path] = go;
22
23 return go;
24 }
25
26 //------------------------------------------------
27 static Hashtable resTable = new Hashtable();
28
29 //泛型约束,明确特化时,类型形参必须是继承于UnityEngine.Object
30 public static T Load<T>(string path) where T : UnityEngine.Object
31 {
32 if (resTable.ContainsKey(path))
33 {
34 return resTable[path] as T;
35 }
36
37 //var goSprite = Resources.Load<Sprite>(iconPath);
38 T t = Resources.Load<T>(path);
39 resTable[path] = t;
40
41 return t;
42 }
43 }