Search Unity

Change an objects material.Setcolour to it's default colour?

Discussion in 'Scripting' started by moynzy, Mar 26, 2015.

  1. moynzy

    moynzy

    Joined:
    Oct 22, 2014
    Posts:
    82
    Code (CSharp):
    1.         gameObject.GetComponentInChildren<Renderer> ().material.SetColor ("_Color", Color.red);
    2.  
    The top code will change the childs color to red. Is there away I can revert this, so lets say if (true) setRed, else if (false) set it's original colour
     
  2. BenZed

    BenZed

    Joined:
    May 29, 2014
    Posts:
    524
    you'd have to cache it's original color:

    Code (CSharp):
    1.  
    2. public bool makeRed;
    3.  
    4. Color originalColor;
    5. new MeshRenderer renderer;
    6.  
    7. void Start() {
    8.  
    9.     renderer = gameObject.GetComponent<MeshRenderer>();
    10.     originalColor = renderer.material.color;
    11.  
    12. }
    13.  
    14.  
    15. void Update() {
    16.  
    17.     renderer.material.color = (makeRed) ? Color.red : originalColor;
    18.  
    19. }
    20.