public TrailRecordInfo(TrailRecordConfig config) { this.Config = config; this.MeshInfo = new SplineMeshInfo(config, mMeshModifier); tmo = new TrailMeshObject(); tmo.Init(config.Materials, config.Layer, config.SortingLayerName, config.SortingOrder); }
public void Play(TrailRecordInfo recordInfo, int recordNum) { TrailMeshObject tmo = recordInfo.tmo; NF.Collections.Generic.LinkedList <LineInfo> records = recordInfo.RecordElements; SplineMeshInfo meshInfo = recordInfo.MeshInfo; TrailRecordConfig config = recordInfo.Config; switch (config.ELinePerVertexCount) { case TrailRecordConfig.E_LinePerVertexCount.TWO: UpdateMeshObjectWithSpline2(tmo, recordInfo.mMeshModifier, records, meshInfo, config); break; case TrailRecordConfig.E_LinePerVertexCount.THREE: UpdateMeshObjectWithSpline3(tmo, recordInfo.mMeshModifier, records, meshInfo, config); break; } }
void UpdateMeshObjectWithSpline2(TrailMeshObject tmo, MeshModifier meshModifier, NF.Collections.Generic.LinkedList <LineInfo> records, SplineMeshInfo meshInfo, TrailRecordConfig config) { int desireRecordFrameCount = Math.Min(records.Count, config.MaxPlayingRecordLength); if (desireRecordFrameCount < 2) { return; } var line = mSpliner.Refresh(records, desireRecordFrameCount); meshModifier.FillSplineVUC2(mSpliner, config.ColorStart, config.ColorEnd, ref meshInfo.mMeshInfo); tmo.UpdateMesh(line, 2, ref meshInfo.mMeshInfo); }