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);
            }
Ejemplo n.º 2
0
    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);
    }