/// <summary>
 /// Event called on cursor release state.
 /// </summary>
 private void OnCursorStateRelease(BeatsCursor cursor)
 {
     InvokeCursorRelease(cursor);
     cursor.OnRecycleDestroy();
 }
 /// <summary>
 /// Event called on game session soft disposal.
 /// </summary>
 protected virtual void OnSoftDispose()
 {
     hitBarCursor.OnRecycleDestroy();
     keyRecycler.ReturnAll();
     raycastResults.Clear();
 }