using UnityEngine;
|
using System;
|
|
|
public static class MaterialUtility
|
{
|
|
public static Material GetDefaultSpriteGrayMaterial()
|
{
|
return BuiltInLoader.LoadMaterial("SpriteGray");
|
}
|
|
public static Material GetInstantiatedSpriteGrayMaterial()
|
{
|
var material = new Material(GetDefaultSpriteGrayMaterial());
|
return material;
|
}
|
|
public static Material GetSmoothMaskGrayMaterial()
|
{
|
return BuiltInLoader.LoadMaterial("SmoothMaskGray");
|
}
|
|
public static Material GetInstantiatedSpriteTwinkleMaterial()
|
{
|
var material = BuiltInLoader.LoadMaterial("Flash");
|
return new Material(material);
|
}
|
|
public static Material GetUIDefaultGraphicMaterial()
|
{
|
return UnityEngine.UI.Image.defaultGraphicMaterial;
|
}
|
|
public static Material GetUIBlurMaterial()
|
{
|
return BuiltInLoader.LoadMaterial("GUIBlurMaterial");
|
}
|
|
public static Material GetGUIRenderTextureMaterial()
|
{
|
return BuiltInLoader.LoadMaterial("UI_RenderTexture");
|
}
|
|
public static void SetRenderSortingOrder(this GameObject root, int sortingOrder, bool includeChildren)
|
{
|
|
if (root == null)
|
{
|
throw new NullReferenceException();
|
}
|
|
if (includeChildren)
|
{
|
var renderers = root.GetComponentsInChildren<Renderer>();
|
for (var i = 0; i < renderers.Length; i++)
|
{
|
var renderer = renderers[i];
|
renderer.sortingOrder = sortingOrder;
|
}
|
}
|
else
|
{
|
var renderer = root.GetComponent<Renderer>();
|
if (renderer != null)
|
{
|
renderer.sortingOrder = sortingOrder;
|
}
|
}
|
|
}
|
|
|
public static Material m_HudMaterial;
|
public static Material hudMaterial {
|
get {
|
if (m_HudMaterial == null)
|
{
|
m_HudMaterial = BuiltInLoader.LoadMaterial("HUD_HeadupName");
|
m_HudMaterial.SetTexture("_Tex1", FontUtility.preferred.material.mainTexture);
|
}
|
return m_HudMaterial;
|
}
|
}
|
|
|
static Shader m_HeroShader;
|
static Shader m_PlayerShader;
|
static Shader heroShader {
|
get {
|
if (m_HeroShader == null)
|
{
|
m_HeroShader = Shader.Find("Character/Character,Emission,Flow_Hero");
|
}
|
|
if (m_HeroShader == null)
|
{
|
m_HeroShader = Shader.Find("Character/Character, Emission,Flow_Hero");
|
}
|
|
return m_HeroShader;
|
}
|
}
|
|
static Shader playerShader {
|
get {
|
if (m_PlayerShader == null)
|
{
|
m_PlayerShader = Shader.Find("Character/Character,Emission,Flow");
|
}
|
|
if (m_PlayerShader == null)
|
{
|
m_PlayerShader = Shader.Find("Character/Character, Emission,Flow");
|
}
|
|
return m_PlayerShader;
|
}
|
}
|
|
public static void SwitchXrayShader(Material _material, bool _isHero)
|
{
|
if (_material == null)
|
{
|
return;
|
}
|
|
if (_isHero)
|
{
|
if (_material.shader.name != "Character/Character,Emission,Flow_Hero" && _material.shader.name != "Character/Character, Emission,Flow_Hero")
|
{
|
_material.shader = heroShader;
|
_material.SetColor("_XRayColor", new Color32(0, 107, 255, 255));
|
}
|
}
|
else
|
{
|
if (_material.shader.name != "Character/Character, Emission,Flow" && _material.shader.name != "Character/Character,Emission,Flow")
|
{
|
_material.shader = playerShader;
|
}
|
}
|
}
|
|
}
|