public static NodeState Tick(int index, INodeBlob blob, IBlackboard bb) { var look = bb.GetData <BTInputLookData>().Value; var direction = quaternion.LookRotation(new float3(look.x, 0, look.y), math.up()); bb.GetDataRef <BTTransformRotationData>().Value = direction; return(NodeState.Success); }
public static NodeState Tick(int index, INodeBlob blob, IBlackboard bb) { var input = bb.GetData <BTInputMoveData>(); var direction = new Vector3(input.Value.x, 0, input.Value.y).normalized; var speed = blob.GetNodeData <InputMoveToCharacterVelocityNode>(index).Speed; bb.GetDataRef <BTCharacterSimpleMoveVelocity>().Value = direction * speed; return(NodeState.Success); }
public static NodeState Tick(int index, INodeBlob blob, IBlackboard bb) { var inputValue = bb.ReadInputActionValue <InputAimPositionNode, Vector2>(index, blob); if (!inputValue.HasValue) { return(NodeState.Failure); } bb.GetDataRef <BTInputAimPositionData>().Value = inputValue.Value; return(NodeState.Success); }
public static NodeState Tick(int index, INodeBlob blob, IBlackboard bb) { var move = bb.GetData <BTInputMoveData>().Value; if (math.lengthsq(move) <= math.FLT_MIN_NORMAL) { return(NodeState.Success); } var direction = quaternion.LookRotationSafe(new float3(move.x, 0, move.y), math.up()); bb.GetDataRef <BTTransformRotationData>().Value = direction; return(NodeState.Success); }