public void AddState(StatementMachineInitialize init, StatementMachineUpdate update)
    {
        Statement statement = new Statement();

        statement.isInitialize       = false;
        statement.isFinished         = false;
        statement.groupName          = null;
        statement.startDuration      = 0f;
        statement.data               = null;
        statement.initializeDelegate = init;
        statement.updateDelegate     = update;
        statement.terminateDelegate  = null;
        _listStateNew.Add(statement);
    }
    public void AddState(StatementMachineInitialize init, StatementMachineUpdate update, StatementMachineTerminate terminate, string groupName, object data, float startDuration)
    {
        Statement statement = new Statement();

        statement.isInitialize       = false;
        statement.isFinished         = false;
        statement.groupName          = groupName;
        statement.startDuration      = startDuration;
        statement.data               = data;
        statement.initializeDelegate = init;
        statement.updateDelegate     = update;
        statement.terminateDelegate  = terminate;
        _listStateNew.Add(statement);
    }