- Home /
 
 
               Question by 
               abhi1abhisheksaha · 4 days ago · 
                materialmaterial colormaterial renderersharedmaterial  
              
 
              How to check if two objects share the same material within an if statement?
Hi, sorry for noob question. But I am making a prototype where I need to know if two objects have the same material. If its true, I want to destroy the player object. I have used material, shared material but nothing worked. Here are my two scripts. One changes materials of the player. The other one changes the enemy material. using System.Collections; using System.Collections.Generic; using UnityEngine;
public class MaterialGiver : MonoBehaviour { public Material material; private Renderer playerRenderer;
 // Start is called before the first frame update
 void Start()
 {
     playerRenderer = GameObject.FindWithTag("Player").GetComponent<Renderer>();
     playerRenderer.enabled = true;
 }
 // Update is called once per frame
 void Update()
 {
     
 }
 private void OnTriggerEnter(Collider other)
 {
     if (other.CompareTag("Player"))
     {
         playerRenderer.sharedMaterial = material;
     }
 }
 
               }
Now this next one : using System.Collections; using System.Collections.Generic; using UnityEngine;
public class MaterialChanger : MonoBehaviour { public Material[] material; Renderer myRenderer;
 private float waitMinimumTime = 1;
 private float waitMaximumTime = 5;
   
 // Start is called before the first frame update
 void Start()
 {   
     myRenderer = GetComponent<Renderer>();
     myRenderer.enabled = true;
     myRenderer.sharedMaterial = material[0];
   
         StartCoroutine(changecolor());
 }
 // Update is called once per frame
 void Update()
 {
 }
 IEnumerator changecolor()
 {
     float waitTime = Random.Range(waitMinimumTime, waitMaximumTime);
     yield return new WaitForSeconds(waitTime);
     myRenderer.sharedMaterial = material[Random.Range(0, 3)];
 }
 
               //This part does not work.
 private void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Player" && other.material == myRenderer.sharedMaterial)
     {
         Destroy(gameObject);
     }
 }
 
               }
               Comment
              
 
               
              Your answer