Exemple #1
0
	Material GetRawImageMaterial()
	{
		var ri = RootMaterialOwner.GetComponent<UnityEngine.UI.RawImage> ();
		if (ri == null)
			return null;

		ri.material = GetInstancedMaterial (ri.material);
		return ri.material;
	}
Exemple #2
0
	Material GetSpriteRendererMaterial()
	{
		var t = RootMaterialOwner.GetComponent<SpriteRenderer> ();
		if (t == null)
			return null;
	
		t.material = GetInstancedMaterial (t.material);

		return t.material;
	}
Exemple #3
0
	Material GetTextMaterial()
	{
		var t = RootMaterialOwner.GetComponent<UnityEngine.UI.Text> ();
		if (t == null)
			return null;

		t.material = GetInstancedMaterial (t.material);
	
		return t.material;
	}
Exemple #4
0
	Material GetMeshRendererMaterial()
	{
		MeshRenderer mr = materialOwner;
		if (mr == null) {
			mr = RootMaterialOwner.GetComponent<MeshRenderer> ();
		}
		if (mr == null)
			return null;
		
		return UseSharedMaterial ? mr.sharedMaterial : mr.material;
	}
Exemple #5
0
	void ForEachMaterial(System.Action<Material> Lambda)
	{
		//	todo; merge all this. Cache an array of materials, and set all children to the same material (option!)
		//	todo: make this an option, and cache a list of materials
		if (MaterialOwnerInChildren && !HasSetAllChildrensMaterial) {
		
			var mrs = RootMaterialOwner.GetComponentsInChildren<MeshRenderer> ();
			var ris = RootMaterialOwner.GetComponentsInChildren<UnityEngine.UI.RawImage> ();
			var ts = RootMaterialOwner.GetComponentsInChildren<UnityEngine.UI.Text> ();

			var cm = CachedMaterial;

			foreach (var mr in mrs) {
				if (mr.sharedMaterial == null)
					continue;
				if (cm == null)
					cm = UseSharedMaterial ? mr.sharedMaterial : mr.material;
				mr.sharedMaterial = cm;
			}
			foreach (var ri in ris) {
				if (ri.material == null)
					continue;
				if (cm == null)
					cm = ri.material;
				ri.material = cm;
			}
			foreach (var t in ts) {
				if (t.material == null)
					continue;
				if (cm == null)
					cm = t.material;
				t.material = cm;
			}

			HasSetAllChildrensMaterial = true;

			//	don't cache in editor
			if (!Application.isPlaying) {
				if (cm != null)
					Lambda.Invoke (cm);
				return;
			}
			_material = cm;

		}


		var mat = CachedMaterial;
		if (mat != null)
			Lambda.Invoke (mat);
	}