- 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