您的位置:首页 > 移动开发 > Unity3D

改变unity场景的图片比例保存到xml当中

2015-09-19 17:48 573 查看
我的xml配置信息如下:

<?version = "1.0" encoding ="utf-8" ?>

<config>

  <scalex>1</scalex>

  <scaley>1</scaley>

  <scalez>1</scalez>

</config>

控制图片缩放并保存到xml的脚本:

public class ChangeBgScale : MonoBehaviour {

    private XmlDocument loadScaleDoc = new XmlDocument();

    private float scaleX, scaleY, scaleZ = 0;

    private GameObject bg;

    private XmlNode node;
// Use this for initialization
void Start () {

        bg = GameObject.Find("bg");

        loadScaleDoc.Load(Application.dataPath + "/ChangeBgScale.xml");

        node = loadScaleDoc.SelectSingleNode("config");

        foreach(XmlNode node2 in node)

        {

            if (node2.Name == "scalex") scaleX = Convert.ToSingle(node2.InnerText);

            if (node2.Name == "scaley") scaleY = Convert.ToSingle(node2.InnerText);

            if (node2.Name == "scaley") scaleZ = Convert.ToSingle(node2.InnerText);

            print("scalex!!!!!!!!!!!!!!!!" + scaleX);

            print("scaley!!!!!!!!!!!!!!!!!!!" + scaleY);

            print("scalez!!!!!!!!!!!!!" + scaleZ);

        }
}

// Update is called once per frame
void Update () {
//通过按数字键1、2、3来改变图片scale的x、y、z  按s键进行保存到xml当中

        if(Input.GetKeyDown(KeyCode.Alpha1))

        {

            bg.transform.localScale += new Vector3(0.01f, 0, 0);

            scaleX = bg.transform.localScale.x;

        }

        if(Input.GetKeyDown(KeyCode.Alpha2))

        {

            bg.transform.localScale += new Vector3(0, 0.01f, 0);

            scaleY = bg.transform.localScale.y;

        }

        if(Input.GetKeyDown(KeyCode.Alpha3))

        {

            bg.transform.localScale += new Vector3(0, 0, 0.01f);

        }

        if(Input.GetKeyDown(KeyCode.S))

        {

            foreach (XmlNode node1 in node)

            {

                switch(node1.Name)

                {

                    case "scalex":

                        node1.InnerText = scaleX.ToString();

                        break;

                    case "scaley":

                        node1.InnerText = scaleY.ToString();

                        break;

                    case "scalez":

                        node1.InnerText = scaleZ.ToString();

                        break;

                }

            }

        }

        loadScaleDoc.Save(Application.dataPath + "/ChangeBgScale.xml");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: