コード例 #1
0
        private void UpdateNode(ref CollisionCheckForwardNode node)
        {
            var tr = node.Tr;

            if (tr == null)
            {
                node.Forward.LastPos = null;
                return;
            }
            if (Raycast(node.Entity, new Ray(tr.position, tr.forward), node.Forward.RayDistance, false) != null)
            {
                node.Forward.LastPos = tr.position;
                return;
            }
            if (node.Forward.LastPos != null)
            {
                var backwardDir = (tr.position - node.Forward.LastPos.Value);
                Raycast(node.Entity, new Ray(node.Forward.LastPos.Value, backwardDir.normalized), backwardDir.magnitude, false);
            }
            node.Forward.LastPos = tr.position;
        }
コード例 #2
0
        public CollisionCheckSystem()
        {
            NodeFilter <CollisionCheckForwardNode> .Setup(CollisionCheckForwardNode.GetTypes());

            _list = EntityController.GetNodeList <CollisionCheckForwardNode>();
        }