- Home /
 
Fade on death!
Hi all,
I have a 1st person controller that dies and respawns correctly, but its something very raw - Player hits death object and immediately respawns.
I need it to be smooth and have the screen turn black when he dies, wait for a couple of seconds and the fade into view.
I managed to set the delay. Any help with the fading would me most appreciated.
(I cant access the wiki to get a fade script in there. Says the community has been hacked.)
This is what I have:
function OnTriggerEnter (theCollider : Collider) { if (theCollider.tag == "KillerPatrol") { yield WaitForSeconds(2.0); transform.position = Vector3(42.66871, -103.2632, -873.2073); }
Thanks!
Answer by Sundar · Aug 03, 2012 at 04:04 PM
Got this from wiki( I guess...) the author uses guiText to show fade in and out. Replace GuiText with your gameobject. Hope this help.
///////////////////////////////////////////// ///Zapp's Uber fading timer script/////////// ///////////////////////////////////////////// ///v3.141//////////////////////////////////// ///////////////////////////////////////////// ///Brought to you by the letter Z..////////// ///////////////////////////////////////////// ///And a grant from the MyWallet Foundation// ///////////////////////////////////////////// using UnityEngine; using System.Collections;
public class Timer : MonoBehaviour {
public int minutes; public int seconds; public int fraction;
public float startTime; float FadeStartTime; float FadeTime;
public float playTime; public float FadeSpeed;
public Color TimerColor = new Color(1,1,1,0);
bool go = false; public bool fadeIn = false; public bool fadeOut = false;
 void Start ()
 {
     if( !guiText )
     {
         Debug.Log("This timer requires a GUIText component");
         enabled = false;
         return;
     }
    
     if(FadeSpeed == 0)
     {
         FadeSpeed = 1;
     }
     guiText.material.color = TimerColor;
 }
   
   
 void Update ()
 {
    
     //This is for testing, make sure to remove it after your done.
     if(Input.GetMouseButtonDown(0))
     {
         if(!go)
         {
             StartTimer();
         }
         Fade();
     }
            
     if(go)
     {
         playTime = Time.time - startTime;
         minutes = (int)(playTime/60f );
         seconds = (int)(playTime % 60f);
         fraction =  (int)((playTime *10) %10);
         guiText.text = string.Format("{0}\'{1}\"{2}", minutes, seconds, fraction);
     }
    
     if(fadeIn)
     {
         FadeIn();
     }
    
     if(fadeOut)
     {
         FadeOut();
     }
    
 }
   
 public void StartTimer()
 {
     startTime = Time.time;
     go = true;
     FadeStartTime = Time.time;
     fadeIn = true;
 }
   
 public void StopTimer()
 {
     go = false;
 }
   
 public void Fade()
 {
     if( !fadeIn && !fadeOut )
     {
         FadeStartTime = Time.time;
         if(TimerColor.a == 1)
         {
             Debug.Log(TimerColor.a);
             fadeOut = true;
         }
         else
         {
             guiText.enabled = true;
             fadeIn = true;
         }
     }
     else
     {
    
         FadeStartTime = Time.time - ((1 - FadeTime) / FadeSpeed);
         fadeIn = !fadeIn;
         fadeOut = !fadeOut;
        
     }
 }
   
 void FadeIn()
 {
     FadeTime = (Time.time - FadeStartTime) * FadeSpeed;
     TimerColor.a = Mathf.SmoothStep(0, 1, FadeTime );
     guiText.material.color = TimerColor;
     if(TimerColor.a == 1)
     {
         fadeIn = false;
     }
 }
   
 void FadeOut()
 {
     FadeTime = (Time.time - FadeStartTime) * FadeSpeed;
     TimerColor.a = Mathf.SmoothStep(1, 0, FadeTime );
     guiText.material.color = TimerColor;
     if(TimerColor.a == 0)
     {
         fadeOut = false;
     }
 }
 
               }
Your answer
 
             Follow this Question
Related Questions
fade out effect when object disappear 1 Answer
What to do with Player game object while he is waiting to respawn. 1 Answer
Respawning my AVATAR 1 Answer
Help with calling and naming functions! 2 Answers
How to delay a respawn? 1 Answer