1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- /// <summary>
- /// 修正UIshader
- /// </summary>
- public class FixUIShader : MonoBehaviour
- {
- private List<Material> imageMaterials = new List<Material>();
- private List<string> imageShaders = new List<string>();
- private List<Material> rawImageMaterials = new List<Material>();
- private List<string> rawImageShaders = new List<string>();
- private List<Material> spriteMaterial = new List<Material>();
- private List<string> spriteShaders = new List<string>();
- /// <summary>
- /// 时间
- /// </summary>
- private float mTime = 0;
- private void Awake()
- {
- imageMaterials.Clear();
- imageShaders.Clear();
- rawImageMaterials.Clear();
- rawImageShaders.Clear();
- spriteMaterial.Clear();
- spriteShaders.Clear();
- Image[] imgs = GetComponentsInChildren<Image>(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<RawImage>(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<SpriteRenderer>(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());
- }
- }
|