Gray.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using UnityEngine;
  2. using System.Collections;
  3. public class Gray : MonoBehaviour
  4. {
  5. SkinnedMeshRenderer[] mRenderers;
  6. // Use this for initialization
  7. void Start()
  8. {
  9. mRenderers = gameObject.GetComponentsInChildren<SkinnedMeshRenderer>();
  10. }
  11. public void SetGrey(bool gray)
  12. {
  13. if (mRenderers == null)
  14. mRenderers = gameObject.GetComponentsInChildren<SkinnedMeshRenderer>();
  15. if (mRenderers != null)
  16. {
  17. for (int i = 0; i < mRenderers.Length; i++)
  18. {
  19. if (mRenderers[i] != null)
  20. {
  21. Material mMaterial = mRenderers[i].material;
  22. if (mMaterial != null && mMaterial.HasProperty("_Strength"))
  23. {
  24. if (gray)
  25. {
  26. mMaterial.SetFloat("_Strength", 0.7f);
  27. }
  28. else
  29. {
  30. mMaterial.SetFloat("_Strength", 1);
  31. }
  32. }
  33. }
  34. }
  35. }
  36. }
  37. }