- Home /
 
               Question by 
               laurienash · Jun 19, 2019 at 09:21 PM · 
                unity 5renderertrailrendererbasictrail renderer  
              
 
              Trail Renderer Fade Out on Button Press
Hi everyone,
I've added a Trail Renderer Component to a GameObject in my scene. The GameObject remains static, but when the player controller moves I create a trail that's the same length as the distance the player controller has moved.
I want the trail to not fade out until a button has been pressed. Once the button has been pressed - I would like to fade the trail out to zero. (preferably with a customisable speed).
Does anyone have an idea of how to go about this? I'm not sure if setting the Time to a huge number and then setting it to zero is a good idea or not?
I've added my script so far below, though not really needed for the question!
Thanks, Laurien
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class ObjectTrailRenderer : MonoBehaviour
 {
     public MyController playerController;
     TrailRenderer lightTrailRenderer;
 
     Vector3 lightTrailRendererPos;
     public Renderer objectRenderer;
 
     public Camera mainCamera;
 
     bool isReset = false;
 
 
     private void Start()
     {
         lightTrailRenderer = GetComponent<TrailRenderer>();
         lightTrailRendererPos = transform.position;
 
         lastPos = playerController.transform.position.x;
         initialTrailPos = transform.position.x;
         trailDistance = initialTrailPos;
 
     }
 
     float initialTrailPos;
     float distanceTravelled = 0;
 
     float lastPos;
     float newPos; 
 
     float trailDistance;
 
 
     public float speed = 2.0f;
     public Vector3 direction = Vector3.right;
 
     void Update()
     {
 
         if (objectRenderer.IsVisibleFrom(mainCamera))
         {
             newPos = playerController.transform.position.x;
             distanceTravelled = newPos - lastPos;
             isReset = false;
 
             if (distanceTravelled > 0)
             {
                 trailDistance += distanceTravelled;
 
                 lightTrailRenderer.AddPosition(new Vector3(trailDistance, lightTrailRendererPos.y, lightTrailRendererPos.z));
 
                 lastPos = newPos;
 
             }
 
             else if (distanceTravelled < 0)
             {
                 trailDistance += distanceTravelled;
 
                 lightTrailRenderer.AddPosition(new Vector3(trailDistance, lightTrailRendererPos.y, lightTrailRendererPos.z));
                 lastPos = newPos;
             }
         }
 
 
         if (!objectRenderer.IsVisibleFrom(mainCamera) & isReset == false)
         {
             isReset = true;
         
             lightTrailRenderer.SetPosition((lightTrailRenderer.positionCount - 1), new Vector3(initialTrailPos, lightTrailRendererPos.y, lightTrailRendererPos.z));
             trailDistance = initialTrailPos;
             lightTrailRenderer.Clear();
         }
 
     }
 }
               Comment
              
 
               
              Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                