Exemple #1
0
        static bool Prefix(ref ConfigNode node, ref Shader ___shader)
        {
            var orig = node;

            node = orig.CreateCopy();
            node.RemoveValues("shader");
            var shaders = orig.GetValues("shader");

            if (shaders.Length > 0)
            {
                ___shader = Shabby.FindShader(shaders[shaders.Length - 1]);
            }
            return(true);
        }
Exemple #2
0
        public override IEnumerator Load(UrlDir.UrlFile urlFile, FileInfo file)
        {
            Debug.Log($"[Shabby] `{urlFile.fullPath}'");
            var bundle = AssetBundle.LoadFromFile(urlFile.fullPath);

            if (!bundle)
            {
                Debug.Log($"[Shabby] could not load {urlFile.fullPath}");
            }
            else
            {
                Shader[] shaders = bundle.LoadAllAssets <Shader>();
                foreach (Shader shader in shaders)
                {
                    Debug.Log($"[Shabby] adding {shader.name}");
                    Shabby.AddShader(shader);
                }
            }
            yield break;
        }
Exemple #3
0
        static bool ReadMaterial4(BinaryReader br, ref Material __result)
        {
            string materialName  = br.ReadString();
            string shaderName    = br.ReadString();
            int    numProperties = br.ReadInt32();

            Shader shader   = Shabby.FindShader(shaderName);
            var    material = new Material(shader);

            material.name = materialName;

            for (int i = 0; i < numProperties; i++)
            {
                string propertyName = br.ReadString();
                int    propertyType = br.ReadInt32();

                switch (propertyType)
                {
                case 0:                         // Color
                    material.SetColor(propertyName, ReadColor(br));
                    break;

                case 1:                         // Vector
                    material.SetVector(propertyName, ReadVector(br));
                    break;

                case 2:                         // Float
                case 3:                         // Range
                    material.SetFloat(propertyName, br.ReadSingle());
                    break;

                case 4:                         // TexEnv
                    Shabby.ReadMaterialTexture(br, material, propertyName);
                    break;
                }
            }
            __result = material;
            return(false);
        }