public void RemoveAction(Action _action)
        {
            if (_action == null)
            {
                return;
            }
            ListLinqView <GameObject> gameObjectList = _action.GetGameObjectList();
            int count = gameObjectList.Count;

            for (int i = 0; i < count; i++)
            {
                GameObject gameObject = gameObjectList[i];
                if (!(gameObject == null))
                {
                    if (this.objectReferenceSet.ContainsKey(gameObject))
                    {
                        ListView <Action> listView = this.objectReferenceSet[gameObject];
                        listView.Remove(_action);
                        if (listView.Count == 0)
                        {
                            this.objectReferenceSet.Remove(gameObject);
                        }
                    }
                    else if (gameObjectList.IndexOf(gameObject) >= _action.refGameObjectsCount)
                    {
                        ActionManager.DestroyGameObject(gameObject);
                    }
                }
            }
            MonoSingleton <ActionManager> .instance.actionList.Remove(_action);

            _action.Release();
        }