/// <summary>
 /// Sets a texture request for the material
 /// </summary>
 /// <param name="name">The name of the texture property in the shader</param>
 /// <param name="value">The texture constructor which fetches the texture</param>
 public void SetTexture(string name, ITextureConstructor value)
 {
     if (textureConstructors.ContainsKey(name))
     {
         textureConstructors[name] = value;
     }
     else
     {
         textureConstructors.Add(name, value);
     }
 }
Exemplo n.º 2
0
        public IEnumerator FetchDependencies_TextureFetchFail_ReturnsFalse()
        {
            MaterialConstructor materialConstructor        = new MaterialConstructor();
            ITextureConstructor fakeTextureConstructorFail = A.Fake <ITextureConstructor>();

            A.CallTo(() => fakeTextureConstructorFail.FetchTextureAsync()).Returns(Task.FromResult <Texture2D>(null));
            materialConstructor.SetTexture("tex", fakeTextureConstructorFail);

            Task <bool> task = materialConstructor.FetchDependencies();

            yield return(AsyncTest.WaitForTask(task));

            bool success = task.Result;

            Assert.False(success);
        }
Exemplo n.º 3
0
        public IEnumerator ConstructMaterial_FetchedTexture_TextureSetInMaterial()
        {
            MaterialConstructor materialConstructor    = new MaterialConstructor();
            Texture2D           expectedTexture        = new Texture2D(2, 2);
            ITextureConstructor fakeTextureConstructor = A.Fake <ITextureConstructor>();

            A.CallTo(() => fakeTextureConstructor.FetchTextureAsync()).Returns(Task.FromResult(expectedTexture));
            materialConstructor.SetTexture("_MainTex", fakeTextureConstructor);
            Task <bool> task = materialConstructor.FetchDependencies();

            yield return(AsyncTest.WaitForTask(task));

            bool success = task.Result;

            Assert.True(success);

            Material mat = materialConstructor.ConstructMaterial();

            Assert.NotNull(mat.mainTexture);
            Assert.AreEqual(expectedTexture.imageContentsHash, mat.mainTexture.imageContentsHash);
        }