public static void StartHeatEffect(Renderer r, float t = 0) { if (r == null || r.material == null) { r = null; instance.enabled = false; return; } if (instance == null) { Camera cur = Camera.main; if (cur == null) { return; } GrabCameraTexture inst = cur.gameObject.GetComponent <GrabCameraTexture>(); if (inst == null) { inst = cur.gameObject.AddComponent <GrabCameraTexture>(); } instance = inst; } r.enabled = false; #if UNITY_ANDROID instance.rt = RenderTexture.GetTemporary(Screen.width, Screen.height); #endif instance.rend = r; instance.t = 1; instance.destroyTime = t > 0?t + Time.time:0; instance.enabled = true; }
void OnEnable() { if (mp == null) { return; } #if UNITY_ANDROID mp.GetComponent <Renderer>().material.shader.maximumLOD = 400; //mp.renderer.enabled=false; GrabCameraTexture.StartHeatEffect(mp.GetComponent <Renderer>(), mp.loop?0:mp.duration); #else mp.GetComponent <Renderer>().material.shader.maximumLOD = 100; #endif }
// void LateUpdate(){ // OnEnable(); // } void OnDestroy() { GrabCameraTexture.StartHeatEffect(null); }