【代码优化】Unity查漏补缺
1.XML:
使用Unity社区中的开源脚本(Js语言)解析XML文件,网址:http://dev.grumpyferret.com/unity/,已打包XMLParser.unitypackage,保存在Plugins\XMLParser目录内。网盘地址:http://pan.baidu.com/s/1i3hCd0L
使用方法:
1 // 读取XML 2 void ReadXML() 3 { 4 m_EnemyList = new List<SpawnData>(); 5 SpawnData data; 6 7 XMLParser xmlparse = new XMLParser(); 8 XMLNode node = xmlparse.Parse(m_XmlData.text); 9 10 XMLNodeList nodelist = node.GetNodeList("ROOT>0>table"); 11 for (int i = 0; i < nodelist.Count; i++) 12 { 13 data = new SpawnData(); 14 data.wave = int.Parse(node.GetValue("ROOT>0>table>" + i + ">@wave")); 15 data.enemyname = node.GetValue("ROOT>0>table>" + i + ">@enemyname"); 16 data.level = int.Parse(node.GetValue("ROOT>0>table>" + i + ">@level")); 17 data.wait = float.Parse(node.GetValue("ROOT>0>table>" + i + ">@wait")); 18 m_EnemyList.Add(data); 19 } 20 }
不使用.NET提供的XML功能是因为它会使游戏的体积变得较大,Unity官方不建议使用它。
在Unity4安装目录Editor\Data\Documentation\html\en\uploads\Main下有一个文件Mono.Xml.zip,这是Unity官方提供的一个精简版的XML解析脚本(C#语言)。
该文件在Unity5安装目录Editor\Data\Documentation\en\uploads\Main下。
2.transform:
在脚本中直接使用transform,相当于于调用GetComponent<Transform>()。如果需要在Update()里面反复使用transform,可通过声明组件,调用引用的方式减轻性能消耗。
1 public class MoveControl : MonoBehaviour 2 { 3 public float moveSpeed = 10F; 4 private Transform thisT; 5 6 void Awake() 7 { 8 thisT = this.GetComponent<Transform>(); 9 } 10 11 void Update() 12 { 13 thisT.Translate(new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0) * Time.deltaTime * moveSpeed); 14 } 15 }