using UnityEngine; using UnityEngine.TestTools; using NUnit.Framework; using System.Collections; class CoordinateMapperViewTests { // TODO: Reduce warning factors [UnityTest] public IEnumerator MainTexture_Equal_Texture_Generate_By_Shader_When_After_Update() { yield return null; GameManager.Instance.SceneTransition("InGame"); yield return null; var tmpObj = GameObject.CreatePrimitive(PrimitiveType.Plane); tmpObj.GetComponent<Renderer>().material = Resources.Load("GreenScreen/GreenScreen.mat", typeof(Material)) as Material; var material = tmpObj.GetComponent<Renderer>().material; SetTextureBuffer(material); var CoordinateMapperView = GameObject.Find("CoordinateMapView"); yield return null; var expected = new Texture(); Graphics.CopyTexture(material.mainTexture, expected); Object.Destroy(tmpObj); var actual = CoordinateMapperView.GetComponent<Renderer>().material.mainTexture; Assert.AreEqual(expected, actual, "texture of gameobject should be same as texture which made by shader."); } void SetTextureBuffer(Material material) { var CoordinateMapperManager = GameObject.Find("Managers").GetComponent<CoordinateMapperManager>(); material.SetTexture("_MainTex", CoordinateMapperManager.ColorTexture); var DepthPoints = CoordinateMapperManager.DepthCoordinates; var DepthBuffer = new ComputeBuffer(DepthPoints.Length, sizeof(float) * 2); material.SetBuffer("depthCoordinates", DepthBuffer); var BodyIndexPoints = CoordinateMapperManager.BodyIndexBuffer; var BodyIndexBuffer = new ComputeBuffer(BodyIndexPoints.Length, sizeof(float)); material.SetBuffer("bodyIndexBuffer", BodyIndexBuffer); } }