private PlayerDeath_PlayStateRuntime CreateGraph(Entity entity, [NotNull] ProcessDefaultAnimationGraph graphSystem, ref Rig rig, ref PlayerDeath_PlayClipRuntime animation) { var set = graphSystem.Set; var data = new PlayerDeath_PlayStateRuntime { ClipPlayerNode = set.Create <ClipPlayerNode>(), DeltaTimeNode = set.Create <ConvertDeltaTimeToFloatNode>(), EntityNode = set.CreateComponentNode(entity), }; set.Connect(data.EntityNode, data.DeltaTimeNode, ConvertDeltaTimeToFloatNode.KernelPorts.Input); set.Connect(data.DeltaTimeNode, ConvertDeltaTimeToFloatNode.KernelPorts.Float, data.ClipPlayerNode, ClipPlayerNode.KernelPorts.DeltaTime); set.Connect(data.ClipPlayerNode, ClipPlayerNode.KernelPorts.Output, data.EntityNode, NodeSetAPI.ConnectionType.Feedback); set.SetData(data.ClipPlayerNode, ClipPlayerNode.KernelPorts.Speed, 1.0f); set.SendMessage(data.ClipPlayerNode, ClipPlayerNode.SimulationPorts.Configuration, new ClipConfiguration { Mask = ClipConfigurationMask.LoopTime }); set.SendMessage(data.ClipPlayerNode, ClipPlayerNode.SimulationPorts.Rig, rig); set.SendMessage(data.ClipPlayerNode, ClipPlayerNode.SimulationPorts.Clip, animation.clip); return(data); }
private void DestroyGraph(Entity entity, [NotNull] ProcessDefaultAnimationGraph graphSystem, ref PlayerDeath_PlayStateRuntime data) { var set = graphSystem.Set; set.Destroy(data.EntityNode); set.Destroy(data.DeltaTimeNode); set.Destroy(data.ClipPlayerNode); EntityManager.RemoveComponent <PlayerDeath_PlayStateRuntime>(entity); }