(JeanShaw)Unity中数据类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JeanShaw/article/details/82628036

语言通过属性来区分,内容通过id来获取,先编写一个接口,包含添加、重置、传输数据的方法 

​
using UnityEngine;
using System.Collections;

public interface PropertyReader{
	void addData();
	void resetData();
	void parse(string[] ss);
}

​

多语言数据的实现,直接通过id取得具体内容

using UnityEngine;
using System.Collections;

public class TextsData : PropertyReader {
	
	public int id{get;set;}
	public string chinese{get;set;}
	
	private static Hashtable data=new Hashtable();
	
	public void addData()
	{
		data.Add(id,this);
	}
	public void resetData(){
		data.Clear();
	}
	public void parse(string[] ss){}
	
	public static TextsData getData(int id)
	{
		return (TextsData)data[id];
	}
	
}

音效数据的实现,也直接通过id来获取,区别在于音效资源有场景和类型之分,战斗音效通过场景来获取,开箱子等按类型分

using UnityEngine;
using System.Collections;

public class MusicData : PropertyReader {
	
	public int id{get;set;}
	public int type{get;set;}
	public string scene{get;set;}
	public string music{get;set;}
	
	private static Hashtable data=new Hashtable();
	
	public void addData()
	{
		data.Add(id,this);
	}
	public void resetData(){}
	public void parse(string[] ss){}
	
	public static MusicData getData(int id){
		return (MusicData)data[id];
	}
	
	public static MusicData getIdBySceneName(string sc){
		MusicData music = null;
		foreach(DictionaryEntry  obj in data){
			MusicData md = (MusicData)obj.Value;
			if(md.scene == sc){
				music = md;
				break;
			}
		}
		return music;
	}
	
	public static MusicData getDataByType(int t){
		MusicData music = null;
		foreach(DictionaryEntry  obj in data){
			MusicData md = (MusicData)obj.Value;
			if(md.type == t){
				music = md;
				break;
			}
		}
		return music;
	}
}

猜你喜欢

转载自blog.csdn.net/JeanShaw/article/details/82628036