private Vector3 ReadVector3Attribute(XmlNode node, string key, float defaultValue, bool directional = true) { if (!node.TryGetAttribute(key, out var attribute)) { return(new Vector3(defaultValue, defaultValue, defaultValue)); } var values = ReadFloatArray(attribute); var x = GetValueByIndex(values, 0, defaultValue); var y = GetValueByIndex(values, 1, defaultValue); var z = GetValueByIndex(values, 2, defaultValue); var vector = CoordinateUtility.ToUnityCoordinate(x, y, z, directional); return(vector); }
private Quaternion ReadRotationAttribute(XmlNode node) { if (node.TryGetAttribute("rotation", out var attribute)) { var values = ReadFloatArray(attribute); if (values.Count < 4) { return(Quaternion.identity); } var x = values[0]; var y = values[1]; var z = values[2]; var w = values[3]; var rotation = CoordinateUtility.ToUnityCoordinate(x, y, z, w); rotation.Normalize(); return(rotation); } return(Quaternion.identity); }