Beispiel #1
0
    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);
    }