版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}
}