Пример #1
0
    private MenuLoadXMLMapData GetLevelObjValues(XmlReader _reader, MapDataObjType _type)
    {
        MenuLoadXMLMapData _temp = new MenuLoadXMLMapData();

        _temp.Type = _type;

        float _rot = 0f;

        while (_reader.Read())
        {
            if (_reader.IsStartElement())
            {
                switch (_reader.Name)
                {
                case "Position":
                    _temp.Position = new Vector3(float.Parse(_reader.GetAttribute("x"), NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign),
                                                 float.Parse(_reader.GetAttribute("y"), NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign),
                                                 float.Parse(_reader.GetAttribute("z"), NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign));
                    break;

                case "Rotation":
                    if (_reader.AttributeCount > 0)
                    {
                        _rot = float.Parse(_reader.GetAttribute("y"), NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign);
                    }
                    else
                    {
                        _reader.Read();
                        _rot = float.Parse(_reader.Value, NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign);
                    }
                    break;

                case "Scale":
                    _temp.Scale.x = float.Parse(_reader.GetAttribute("x"), NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign);
                    _temp.Scale.y = float.Parse(_reader.GetAttribute("y"), NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign);
                    _temp.Scale.z = float.Parse(_reader.GetAttribute("z"), NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign);
                    break;
                }
            }
        }

        _temp.Rotation = new Quaternion(0f, _rot, 0f, 0f);

        /* Debug.Log("MenuLoadLevelsFromXML - GetLevelObjValues - Position: " + _temp.Position);
         * Debug.Log("MenuLoadLevelsFromXML - GetLevelObjValues - Rotation: " + _temp.Rotation);
         * Debug.Log("MenuLoadLevelsFromXML - GetLevelObjValues - Scale: " + _temp.Scale);
         * Debug.Log("MenuLoadLevelsFromXML - GetLevelObjValues - Type: " + _temp.Type);*/
        return(_temp);
    }
Пример #2
0
    public List <MenuLoadXMLMapData> GetLevelObjs(int _levelUrlNum)
    {
        List <MenuLoadXMLMapData> _temps = new List <MenuLoadXMLMapData>();

        if (!CheckXML(FileUrls[_levelUrlNum]))
        {
            return(_temps);
        }

        XmlReader reader = XmlReader.Create(FileUrls[_levelUrlNum]);

        while (reader.Read())
        {
            switch (reader.Name)
            {
            case "PlayerStart":
                MenuLoadXMLMapData _newDataPlay = GetLevelObjValues(reader.ReadSubtree(), MapDataObjType.Play);
                _temps.Add(_newDataPlay);
                break;

            case "Goal":
                MenuLoadXMLMapData _newDataEndT = GetLevelObjValues(reader.ReadSubtree(), MapDataObjType.EndT);
                _temps.Add(_newDataEndT);
                break;

            case "Platform":
                MenuLoadXMLMapData _newDataLevl = GetLevelObjValues(reader.ReadSubtree(), MapDataObjType.Levl);
                _temps.Add(_newDataLevl);
                break;

            case "Tower":
                MenuLoadXMLMapData _newDataTowr = GetLevelObjValues(reader.ReadSubtree(), MapDataObjType.Towr);
                _temps.Add(_newDataTowr);
                break;

            case "Target":
                MenuLoadXMLMapData _newDataTarg = GetLevelObjValues(reader.ReadSubtree(), MapDataObjType.Targ);
                _temps.Add(_newDataTarg);
                break;
            }
        }

        reader.Close();

        return(_temps);
    }