Beispiel #1
0
        private static void UpdateMaterial(string dataSetName, GameObject go)
        {
            Material material = VuforiaUtilities.LoadReferenceMaterial();

            if (material == null)
            {
                return;
            }
            string text = go.name + "_scaled";
            string text2;

            if (!VuforiaUtilities.GetImagePathWithExtension("Assets/Editor/Vuforia/ImageTargetTextures/" + dataSetName + "/" + text, out text2))
            {
                VuforiaUtilities.GetImagePathWithExtension("Assets/Editor/QCAR/ImageTargetTextures/" + dataSetName + "/" + text, out text2);
            }
            Material material2 = go.GetComponent <Renderer>().sharedMaterial;

            if (material2 == null || material2 == material)
            {
                material2 = new Material(material);
                go.GetComponent <Renderer>().sharedMaterial = material2;
            }
            Texture2D mainTexture = AssetDatabase.LoadAssetAtPath <Texture2D>(text2);

            material2.mainTexture      = mainTexture;
            material2.name             = text + "Material";
            material2.mainTextureScale = new Vector2(-1f, -1f);
            SceneManager.Instance.UnloadUnusedAssets();
        }
        internal static Material UpdateMaterial(string dataSetName, string trackableName, ImageTargetType imageTargetType, Material oldMaterial)
        {
            Material material  = AssetDatabase.LoadAssetAtPath <Material>("Assets/Vuforia/Materials/UserDefinedTarget.mat");
            Material material2 = AssetDatabase.LoadAssetAtPath <Material>("Assets/Vuforia/Materials/CloudRecoTarget.mat");

            if (imageTargetType == ImageTargetType.USER_DEFINED)
            {
                return(material);
            }
            if (imageTargetType == ImageTargetType.CLOUD_RECO)
            {
                return(material2);
            }
            Material material3 = VuforiaUtilities.LoadReferenceMaterial();

            if (material3 == null)
            {
                return(null);
            }
            Material material4 = oldMaterial;

            if (material4 == null || material4 == material3 || material4 == material || material4 == material2)
            {
                material4 = new Material(material3);
            }
            string text;

            if (!VuforiaUtilities.GetImagePathWithExtension(string.Concat(new string[]
            {
                "Assets/Editor/Vuforia/ImageTargetTextures/",
                dataSetName,
                "/",
                trackableName,
                "_scaled"
            }), out text))
            {
                VuforiaUtilities.GetImagePathWithExtension(string.Concat(new string[]
                {
                    "Assets/Editor/QCAR/ImageTargetTextures/",
                    dataSetName,
                    "/",
                    trackableName,
                    "_scaled"
                }), out text);
            }
            Texture2D mainTexture = AssetDatabase.LoadAssetAtPath <Texture2D>(text);

            material4.mainTexture      = mainTexture;
            material4.mainTextureScale = new Vector2(1f, 1f);
            material4.name             = trackableName + "Material";
            return(material4);
        }
        private static void UpdateRectangleMaterial(GameObject gameObject)
        {
            MeshRenderer meshRenderer = gameObject.GetComponent <MeshRenderer>();

            if (!meshRenderer)
            {
                meshRenderer = gameObject.AddComponent <MeshRenderer>();
            }
            Material material  = VuforiaUtilities.LoadReferenceMaterial();
            Material material2 = meshRenderer.sharedMaterial;

            if (material2 == null || material2 == material)
            {
                material2 = new Material(material);
            }
            material2.name   = "Text";
            material2.shader = Shader.Find("Unlit/Texture");
            material2.SetColor("_Color", Color.white);
            meshRenderer.sharedMaterial = material2;
        }
        internal static void UpdateMaterial(SerializedVuMark serializedObject)
        {
            Material material      = serializedObject.GetMaterial();
            string   previewImage  = serializedObject.PreviewImage;
            string   trackableName = serializedObject.TrackableName;
            Material material2     = VuforiaUtilities.LoadReferenceMaterial();

            if (material2 == null)
            {
                return;
            }
            Material material3 = material;

            if (material3 == null || material3 == material2)
            {
                material3 = new Material(material2);
            }
            Texture2D mainTexture = AssetDatabase.LoadAssetAtPath <Texture2D>(previewImage);

            material3.mainTexture      = mainTexture;
            material3.mainTextureScale = new Vector2(1f, 1f);
            material3.name             = trackableName + "Material";
            serializedObject.SetMaterial(material3);
        }
        private static Material[] UpdateMaterials(string dataSetName, string trackableName, bool hasBottomGeometry, bool hasTopGeometry, bool insideMaterial, Material[] oldMaterials)
        {
            Material material = VuforiaUtilities.LoadReferenceMaterial();

            if (material == null)
            {
                return(new Material[0]);
            }
            string str = "Assets/Editor/Vuforia/CylinderTargetTextures/" + dataSetName + "/" + trackableName;

            if (!File.Exists(str + ".Body_scaled.png") && !File.Exists(str + ".Body_scaled.jpg") && !File.Exists(str + ".Body_scaled.jpeg"))
            {
                str = "Assets/Editor/QCAR/CylinderTargetTextures/" + dataSetName + "/" + trackableName;
            }
            List <string> list = new List <string>
            {
                str + ".Body_scaled"
            };

            if (hasBottomGeometry)
            {
                list.Add(str + ".Bottom_scaled");
            }
            if (hasTopGeometry)
            {
                list.Add(str + ".Top_scaled");
            }
            int count = list.Count;

            Material[] array = new Material[insideMaterial ? (count * 2) : count];
            for (int i = 0; i < list.Count; i++)
            {
                string text;
                VuforiaUtilities.GetImagePathWithExtension(list[i], out text);
                Material material2 = null;
                if (i < oldMaterials.Length)
                {
                    material2 = oldMaterials[i];
                }
                if (material2 == null || material2 == material)
                {
                    material2 = new Material(material);
                }
                Texture2D mainTexture = AssetDatabase.LoadAssetAtPath <Texture2D>(text);
                string    fileNameWithoutExtension = Path.GetFileNameWithoutExtension(text);
                material2.mainTexture      = mainTexture;
                material2.name             = fileNameWithoutExtension + "Material";
                material2.mainTextureScale = new Vector2(-1f, -1f);
                array[i] = material2;
                if (insideMaterial)
                {
                    int      num       = i + count;
                    Material material3 = null;
                    if (num < oldMaterials.Length)
                    {
                        material3 = oldMaterials[num];
                    }
                    if (material3 == null || material3 == material)
                    {
                        material3 = new Material(material2);
                    }
                    material3.CopyPropertiesFromMaterial(material2);
                    material3.name   = material2.name + "Bright";
                    material3.shader = Shader.Find("Custom/BrightTexture");
                    array[num]       = material3;
                }
            }
            return(array);
        }