public void Record(TrailRecordInfo info, Vector3 basePosition, Vector3 tipPosition, float dt) { if (info.RecordElements.Count < info.Config.MaxPlayingRecordLength) { var snapshot = new LineInfo(); snapshot.Init(basePosition, tipPosition); info.RecordElements.AddHead(snapshot); } else { info.RecordElements.TryRemoveTail(out var tail); tail.Init(basePosition, tipPosition); info.RecordElements.AddHead(tail); } }