【代码优化】Unity查漏补缺
阅读原文时间:2023年07月08日阅读:1

1.XML:

  使用Unity社区中的开源脚本(Js语言)解析XML文件,网址:http://dev.grumpyferret.com/unity/,已打包XMLParser.unitypackage,保存在Plugins\XMLParser目录内。网盘地址:http://pan.baidu.com/s/1i3hCd0L

  使用方法:  

  // 读取XML
void ReadXML()
{
m_EnemyList = new List();
SpawnData data;

     XMLParser xmlparse = new XMLParser();  
     XMLNode node = xmlparse.Parse(m\_XmlData.text);

     XMLNodeList nodelist = node.GetNodeList("ROOT>0>table");  
     for (int i = ; i < nodelist.Count; i++)  
     {  
         data = new SpawnData();  
         data.wave = int.Parse(node.GetValue("ROOT>0>table>" + i + ">@wave"));  
         data.enemyname = node.GetValue("ROOT>0>table>" + i + ">@enemyname");  
         data.level = int.Parse(node.GetValue("ROOT>0>table>" + i + ">@level"));  
         data.wait = float.Parse(node.GetValue("ROOT>0>table>" + i + ">@wait"));  
         m\_EnemyList.Add(data);  
     }  
 }

  不使用.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()。如果需要在Update()里面反复使用transform,可通过声明组件,调用引用的方式减轻性能消耗。

public class MoveControl : MonoBehaviour
{
public float moveSpeed = 10F;
private Transform thisT;

 void Awake()  
 {  
     thisT = this.GetComponent<Transform>();  
 }

 void Update()  
 {  
     thisT.Translate(new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), ) \* Time.deltaTime \* moveSpeed);  
 }  

}

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器