游戏对象数据存储管理器

来源:互联网 发布:结绳记事 软件 编辑:程序博客网 时间:2024/06/14 02:26
using UnityEngine;using System.Collections;using System.Collections.Generic;using UnityEngine.UI;public class GameObjectUserData : MonoBehaviour {public System.Object data;public Dictionary<string,System.Object> dataDic = new Dictionary<string, object>();public static void add(Transform transform){transform.gameObject.AddComponent<GameObjectUserData>();}public static void setUserData(Transform transform,System.Object data){GameObjectUserData gameObjectUserData = transform.GetComponent<GameObjectUserData> ();if (gameObjectUserData == null) {gameObjectUserData = transform.gameObject.AddComponent<GameObjectUserData>();}gameObjectUserData.data = data;}public static System.Object getUserData(Transform transform){GameObjectUserData gameObjectUserData = transform.GetComponent<GameObjectUserData> ();if(gameObjectUserData == null) return null;return gameObjectUserData.data;}public static void setUserDataStr(Transform transform,string data){GameObjectUserData gameObjectUserData = transform.GetComponent<GameObjectUserData> ();if (gameObjectUserData == null) {gameObjectUserData = transform.gameObject.AddComponent<GameObjectUserData>();}gameObjectUserData.data = data;}public static string getUserDataStr(Transform transform){GameObjectUserData gameObjectUserData = transform.GetComponent<GameObjectUserData> ();return (string)gameObjectUserData.data;}public static void setDic(Transform transform,string key,System.Object data){GameObjectUserData gameObjectUserData = transform.GetComponent<GameObjectUserData> ();if (gameObjectUserData == null) {gameObjectUserData =transform.gameObject.AddComponent<GameObjectUserData>();}gameObjectUserData.dataDic [key] = data;}public static System.Object getDic(Transform transform,string key){GameObjectUserData gameObjectUserData = transform.GetComponent<GameObjectUserData> ();if(gameObjectUserData == null){gameObjectUserData = transform.gameObject.AddComponent<GameObjectUserData> ();}System.Object value;gameObjectUserData.dataDic.TryGetValue (key,out value);return value; } public static void copy(Transform transform_s,Transform transform_t){GameObjectUserData gameObjectUserData_s = transform_s.GetComponent<GameObjectUserData> ();GameObjectUserData gameObjectUserData_t = transform_t.GetComponent<GameObjectUserData> ();if (gameObjectUserData_t == null) {gameObjectUserData_t = transform_t.gameObject.AddComponent<GameObjectUserData>();}foreach (string key in gameObjectUserData_s.dataDic.Keys){gameObjectUserData_t.dataDic.Add(key,gameObjectUserData_s.dataDic[key]);}}}


使用方法


GameObjectUserData.setUserData(go.transform,123);
GameObjectUserData.getUserData(go.transform);

GameObjectUserData.setDic(go.transform,”Id",123);
GameObjectUserData.getDic(go.transform,”Id");





0 0