Ejemplo n.º 1
0
        public MoverSystem()
        {
            NodeFilter <ForwardMoverNode> .Setup(ForwardMoverNode.GetTypes());

            _forwardMovers = EntityController.GetNodeList <ForwardMoverNode>();
            NodeFilter <RotateToNode> .Setup(RotateToNode.GetTypes());

            _rotators = EntityController.GetNodeList <RotateToNode>();
            NodeFilter <SimpleMoverNode> .Setup(SimpleMoverNode.GetTypes());

            _simpleMovers = EntityController.GetNodeList <SimpleMoverNode>();
            NodeFilter <ArcMoverNode> .Setup(ArcMoverNode.GetTypes());

            _arcMovers = EntityController.GetNodeList <ArcMoverNode>();
        }
Ejemplo n.º 2
0
        private void HandleRotation(ref RotateToNode r)
        {
            if (r.Entity.IsDestroyed())
            {
                return;
            }
            var targetRotation = Quaternion.LookRotation(r.Rotate.Position - r.Tr.position);
            var rb             = r.Rb?.Rb;

            if (rb != null)
            {
                rb.MoveRotation(Quaternion.RotateTowards(rb.rotation, targetRotation, r.Rotate.RotationSpeed * TimeManager.DeltaTime));
            }
            else
            {
                r.Rotate.TargetTr.Tr.rotation = Quaternion.RotateTowards(r.Rotate.TargetTr.Tr.rotation, targetRotation, r.Rotate
                                                                         .RotationSpeed * TimeManager
                                                                         .DeltaTime);
            }
        }