public void PlayAction(ActionType actionType, EntityAction action = null, bool first = false) { if (machine != null) { if (action == null) { action = ObjectPool.GetInstance <EntityAction>(); } action.type = actionType; action.SetAgent(this); if (first) { machine.AddFirst(action); } else { machine.AddLast(action); } } }