public IEnumerator Incremental([Range(0.0f, 360.0f, 15.0f)] float angle) { using (var texture = new MonochromeTexture("Maskox/Linear")) { texture.Material.SetFloat("_Maskox_Angle", angle); yield return(texture.Initialize()); yield return(texture.Update()); var radian = angle * Mathf.Deg2Rad; var direction = Quaternion.AngleAxis(angle, Vector3.forward) * Vector3.right; UnityAssert.AreEqual(0.0f, direction.z); UnityAssert.AreApproximatelyEqual(1.0f, direction.magnitude); var center = new Vector2(0.5f, 0.5f); var extents = new Vector2(direction.x * 0.5f, direction.y * 0.5f); var start = center - extents; var end = center + extents; UnityAssert.AreApproximatelyEqual(0.5f, texture[0.5f, 0.5f], 1.0f / 256.0f); texture.AssertIncremental(start, end); } }
public IEnumerator Incremental( [Range(-1.0f, +1.5f, 4)] float dx, [Range(-2.0f, +1.2f, 3)] float dy) { using (var texture = new MonochromeTexture("Maskox/Radial")) { var center = new Vector2(0.5f, 0.5f); texture.Material.SetVector("_Maskox_Center", center); yield return(texture.Initialize()); yield return(texture.Update()); var direction = dx != 0.0f || dy != 0.0f ? new Vector2(dx, dy).normalized : Vector2.right; texture.AssertIncremental(center, center + (direction * 0.5f)); } }