public static QualityInformation Parse(XmlNode qualityInformationNode) { var qualityInformation = new QualityInformation { ProductQualityIndex = double.Parse(qualityInformationNode.SelectSingleNodeThrowIfNull("productQualityIndex").InnerText), QualityDatas = new List <QualityData>() }; var qualityDataLists = qualityInformationNode.SelectNodes("qualityDataList/qualityData"); foreach (var currentDataList in qualityDataLists.Cast <XmlNode>()) { qualityInformation.QualityDatas.Add(QualityDataParser.Parse(currentDataList)); } return(qualityInformation); }
public override MaterialInst CreateMaterialForBody(Renderer[] renderers, Material origin, CharacterGraphicsQuality quality) { // need to instantiate material builder to use camera in it. GameObject go = GameObject.Instantiate(gameObject) as GameObject; go.transform.localPosition = Vector3.up * instanceHeight; instanceHeight += 100.0f; ModifiableMaterialInst inst = new ModifiableMaterialInst(); // allocate a piece of texture. int size = QualityInformation.GetCharacterTextureSize(quality); inst.InitWithSizeAndMat(size, size, origin); foreach (Renderer r in renderers) { r.sharedMaterial = inst.SharedMaterial; } // get mesh renderers and camera. Camera cam = go.GetComponentInChildren <Camera>(); MeshRenderer[] rendererArray = go.GetComponentsInChildren <MeshRenderer>(); // disable all mesh pieces. foreach (MeshRenderer mr in rendererArray) { mr.enabled = false; } // set target cam.targetTexture = inst.TargetTexture; // init a black texture. cam.Render(); cam.targetTexture = null; Destroy(go); return(inst); }