//delete state and remove it from sm
        private void Delete()
        {
            if (sm.stateMachine.entry == state)
            {
                Debug.LogError("Can't delete entry state, change entry state first to delete this one.");
                return;
            }

            foreach (Handle h in Back)
            {
                h.RemoveNext(this);
            }
            foreach (Handle h in Next)
            {
                h.RemoveBack(this);
            }

            SODatabase.Clear(state, state.behaviours);
            DestroyImmediate(state, true);
            sm.Remove(this);
        }