using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
///
/// 修正UIshader
///
public class FixUIShader : MonoBehaviour
{
private List imageMaterials = new List();
private List imageShaders = new List();
private List rawImageMaterials = new List();
private List rawImageShaders = new List();
private List spriteMaterial = new List();
private List spriteShaders = new List();
///
/// 时间
///
private float mTime = 0;
private void Awake()
{
imageMaterials.Clear();
imageShaders.Clear();
rawImageMaterials.Clear();
rawImageShaders.Clear();
spriteMaterial.Clear();
spriteShaders.Clear();
Image[] imgs = GetComponentsInChildren(true);
int length = imgs.Length;
for (int i = 0; i < length; i++)
{
Material _mater = imgs[i].material;
imageMaterials.Add(_mater);
imageShaders.Add(_mater.shader.name);
}
RawImage[] rawImgs = GetComponentsInChildren(true);
length = rawImgs.Length;
for (int i = 0; i < length; i++)
{
Material _mater = rawImgs[i].material;
rawImageMaterials.Add(_mater);
rawImageShaders.Add(_mater.shader.name);
}
SpriteRenderer[] spr = GetComponentsInChildren(true);
int sprLength = spr.Length;
for (int i = 0; i < sprLength; i++)
{
Material _ms = spr[i].material;
spriteMaterial.Add(_ms);
spriteShaders.Add(_ms.shader.name);
}
}
void Start()
{
for (int i = 0; i < imageMaterials.Count; i++)
{
imageMaterials[i].shader = Shader.Find(imageShaders[i]);
}
for (int i = 0; i < rawImageMaterials.Count; i++)
{
rawImageMaterials[i].shader = Shader.Find(rawImageShaders[i]);
}
for (int i = 0; i < spriteMaterial.Count; i++)
{
spriteMaterial[i].shader = Shader.Find(spriteShaders[i]);
}
}
private void OnEnable()
{
mTime = Time.time;
}
private void OnDisable()
{
int diffTime = (int)(Time.time - mTime);
if (diffTime <= 0)
{
return;
}
// 友盟统计: 页面统计
AndroidInteractive.CallJavaFunction("onEvent", "e_page_stay", "page_nameText", gameObject.name+"_"+diffTime.ToString());
}
}