// Token: 0x06000E59 RID: 3673 RVA: 0x00046D40 File Offset: 0x00044F40 private void AddPoint() { DamageTrail.TrailPoint item = new DamageTrail.TrailPoint { position = this.transform.position, localStartTime = this.localTime, localEndTime = this.localTime + this.pointLifetime }; if (this.segmentPrefab) { item.segmentTransform = UnityEngine.Object.Instantiate <GameObject>(this.segmentPrefab, this.transform).transform; } this.pointsList.Add(item); }
// Token: 0x06000E55 RID: 3669 RVA: 0x000468A0 File Offset: 0x00044AA0 private void FixedUpdate() { this.localTime += Time.fixedDeltaTime; if (this.localTime >= this.nextUpdate) { this.nextUpdate += this.updateInterval; this.UpdateTrail(); } if (this.pointsList.Count > 0) { DamageTrail.TrailPoint trailPoint = this.pointsList[this.pointsList.Count - 1]; trailPoint.position = this.transform.position; trailPoint.localEndTime = this.localTime + this.pointLifetime; this.pointsList[this.pointsList.Count - 1] = trailPoint; if (trailPoint.segmentTransform) { trailPoint.segmentTransform.position = this.transform.position; } if (this.lineRenderer) { this.lineRenderer.SetPosition(this.pointsList.Count - 1, trailPoint.position); } } if (this.segmentPrefab) { Vector3 position = this.transform.position; for (int i = this.pointsList.Count - 1; i >= 0; i--) { Transform segmentTransform = this.pointsList[i].segmentTransform; segmentTransform.LookAt(position, Vector3.up); Vector3 a = this.pointsList[i].position - position; segmentTransform.position = position + a * 0.5f; float num = Mathf.Clamp01(Mathf.InverseLerp(this.pointsList[i].localStartTime, this.pointsList[i].localEndTime, this.localTime)); Vector3 localScale = new Vector3(this.radius * (1f - num), this.radius * (1f - num), a.magnitude); segmentTransform.localScale = localScale; position = this.pointsList[i].position; } } }