- Home /
How to fade out target indicator on player arrival?
I'm sorry if this is a stupid question, as I'm pretty new at this.
I'm trying to create a target indicator that fades in on mouse click, and fade out on player arrival.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class TargetIndicatorFadeTest : MonoBehaviour
{
[Range(0.01f, 15f)]
public float fadeSpeed = 5.5f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
//Fade in target indicator on mouse click, then
if (Input.GetMouseButtonDown(0))
{
StartCoroutine(FadeInObject());
}
//fade out target indicator on player arrival
}
public IEnumerator FadeOutObject()
{
while (this.GetComponent<Renderer>().material.color.a > 0)
{
Color objectColor = this.GetComponent<Renderer>().material.color;
float fadeAmount = objectColor.a - (fadeSpeed * Time.deltaTime);
objectColor = new Color(objectColor.r, objectColor.g, objectColor.b, fadeAmount);
this.GetComponent<Renderer>().material.color = objectColor;
yield return null;
}
}
public IEnumerator FadeInObject()
{
while (this.GetComponent<Renderer>().material.color.a < 1)
{
Color objectColor = this.GetComponent<Renderer>().material.color;
float fadeAmount = objectColor.a + (fadeSpeed * Time.deltaTime);
objectColor = new Color(objectColor.r, objectColor.g, objectColor.b, fadeAmount);
this.GetComponent<Renderer>().material.color = objectColor;
yield return null;
}
}
}
This script is placed on a quad (named TargetBody) with a material added, which is inside a gameObject called Target Indicator. This gameObject is nested inside the player model.
I have tried modifying solutions like (https://answers.unity.com/questions/324589/how-can-i-tell-when-a-navmesh-has-reached-its-dest.html), but I can't get it to work... Somehow it has to know the movement of the Player model?
Answer by Nouveau · Jun 14, 2020 at 07:16 PM
I got it working. I used the mesh collider in the quad, set it to isTrigger, and added a Rigidbody without gravity. Added a collider to my Player model, and added this code to the script:
private void OnTriggerEnter(Collider other)
{
StartCoroutine(FadeOutObject());
}
Your answer
Follow this Question
Related Questions
Fade in / Out wont work when reloading level 1 Answer
How to make blinding and flashing effects with lerp? 2 Answers
Sprite smooth fade out/in 2 Answers
Fade In / Out UI Image 3 Answers
GUI.DrawTexture Fade In/Out Problem 1 Answer