你的位置:首页 > 操作系统

[操作系统]unity3D项目中如何避免硬代码(C#)


平时做项目,代码中是不允许出现硬代码的,一般我们是怎么处理的呢? 那么硬代码又是什么呢?

我们俗称的硬代码:eg:  1 public UIlabel label; 2 label.text = "欢迎来到梦幻岛";  这样我们俗称为硬代码。

好了,那么该如何避免,话不多说,直接上图:

这是一种处理方式,TXT 格式的文档,前面是ID,后面是描述性文字。

可是我们该如何在项目中访问这个txt文件里面的数据呢? 话不多说,直接上代码:

 1 using UnityEngine; 2 using System.Collections; 3  4 public class ReadTxt :MonoBehaviour{ 5  6   public TextAsset txt; 7   public static ReadTxt _instance; 8   string fonttxt; 9   void Awake() 10   {11     _instance = this;12   }13 14   void Start() { }15 16   public string GetFont(int ID)17   {18     string[] taskinfoArray = txt.ToString().Split('\n');19     foreach(string str in taskinfoArray){20     21       string[] Fontlist = str.Split('|');22       int id = int.Parse(Fontlist[0]);23       while (ID== id) {24         fonttxt = Fontlist[1];25         break;26       }27     }28 29     return fonttxt;30   }31  32 33 }

 上述用到了单利,单利这里我们就不赘述了。

string[] taskinfoArray = txt.ToString().Split('\n'); 这里有些朋友就要问了,Split('\n')是干什么的,它是分割函数,检测是否有换行操作,如果有换行我们把它存在数组里面,
上面的txt文档,我们就是写完一行,肯定要回车换行写下一句,这里就是用这个Split()函数进行检测的。
  好了说到这里,想必大家都清楚了吧。至于调用呢,这个就很简单了。
 1 using UnityEngine; 2 using System.Collections; 3  4 public class TestTxt : MonoBehaviour { 5  6   public UILabel label; 7  8  9   void Start() 10   {11     string bbb = ReadTxt._instance.GetFont(1001);12     13     label.text = bbb;14   }15 16 }

然而label显示的 文字必定是:维护公告。  这里我们只是抛砖引玉,所以写的比较粗糙,望大家谅解。