// PUBLIC STATIC METHODS: --------------------------------------------------------- public static ShootingTrailRenderer Create(ShootingTrail data) { GameObject instance = new GameObject("ShootingTrailRenderer"); ShootingTrailRenderer trail = instance.AddComponent <ShootingTrailRenderer>(); trail.SetupShootingTrail(data); return(trail); }
// PRIVATE METHODS: -------------------------------------------------------------- private void SetupShootingTrail(ShootingTrail data) { this.SetupLineRenderer(data, true); this.lineRenderer.positionCount = 2; this.lineRenderer.SetPositions(new Vector3[] { data.position1, data.position2 }); this.positionA = data.position1; this.positionB = data.position2; this.startAlpha = this.lineRenderer.material.color.a; this.startTime = Time.time; float distance = Vector3.Magnitude(this.positionB - this.positionA); this.totalDuration = distance * data.duration; }
public static ShootingTrailRenderer Create( ShootingTrail data, TrajectoryRenderer.TrajectoryResult trajectory) { GameObject instance = new GameObject("ShootingTrailRenderer"); ShootingTrailRenderer trail = instance.AddComponent <ShootingTrailRenderer>(); trail.SetupShootingTrail(data); trail.lineRenderer.positionCount = trajectory.count; trail.lineRenderer.SetPositions(trajectory.points); trail.retract = (trajectory.count == 2); if (trail.retract) { trail.positionA = trajectory.points[0]; trail.positionB = trajectory.points[1]; } return(trail); }