public void InitTracks(InitTrackRendererEvent e, TrackMarksInitNode node) { Transform parent = node.assembledTank.AssemblyRoot.transform; TrackMarksComponent trackMarks = node.trackMarks; TrackMarksRenderComponent render = new TrackMarksRenderComponent { mesh = new Mesh() }; render.mesh.MarkDynamic(); GameObject obj2 = new GameObject("Track"); obj2.transform.SetParent(parent); obj2.AddComponent <MeshFilter>().mesh = render.mesh; trackMarks.material = new Material(trackMarks.material); MeshRenderer renderer = obj2.AddComponent <MeshRenderer>(); renderer.material = trackMarks.material; foreach (ParticleSystem system in trackMarks.particleSystems) { ParticleSystem.ShapeModule shape = system.shape; shape.enabled = true; shape.shapeType = ParticleSystemShapeType.MeshRenderer; shape.meshRenderer = renderer; } this.InitTrackMarksRender(render, trackMarks); node.Entity.AddComponent(render); base.NewEvent <InitTrackBuilderEvent>().Attach(node).ScheduleDelayed(0.3f); }
public void InitBuilder(InitTrackBuilderEvent e, TrackMarksInitNode node, SingleNode <TrackMarksRenderComponent> renderer) { TrackMarksComponent trackMarks = node.trackMarks; TrackMarksBuilderComponent builder = new TrackMarksBuilderComponent(); AllocateBuilder(builder, trackMarks, renderer.component); this.FindWheels(builder, node.chassisAnimation, trackMarks); node.Entity.AddComponent(builder); }
public void InitTrackMarksSystem(NodeAddedEvent evt, TrackMarksInitNode node) { base.NewEvent <InitTrackRendererEvent>().Attach(node).ScheduleDelayed(0.3f); }