| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- namespace UIExtensions
- {
- public class UIParticleOptimizeReference : UIParticle
- {
- [SerializeField]
- private string shaderName;
- [SerializeField]
- private string shaderPath;
- [SerializeField]
- private Texture2D texture2D;
- private Material m_TempMaterial;
- protected override void OnEnable()
- {
- base.OnEnable();
- if (!m_TempMaterial)
- {
- Shader shader = ResourceMgr.Instance.FindShader(shaderName, shaderPath);
- if (shader)
- {
- m_TempMaterial = new Material(shader);
- }
- else
- {
- _renderer.enabled = false;
- }
- }
- if (m_TempMaterial)
- {
- m_TempMaterial.SetTexture("_MainTex", texture2D);
- _renderer.sharedMaterial = m_TempMaterial;
- }
- else
- {
- _renderer.enabled = false;
- }
- }
- protected override void OnDisable()
- {
- base.OnDisable();
- }
- protected override void OnDestroy()
- {
- base.OnDestroy();
- if (m_TempMaterial)
- {
- #if UNITY_EDITOR
- if (Application.isPlaying)
- {
- Destroy(m_TempMaterial);
- }
- else
- {
- DestroyImmediate(m_TempMaterial);
- }
- #else
- Destroy(m_TempMaterial);
- #endif
- m_TempMaterial = null;
- _renderer.sharedMaterial = null;
- }
- }
- }
- }
|