QAnimationController 类
class Qt3DAnimation::QAnimationController动画控制器类。[更多信息...
| 头文件 | #include <QAnimationController> |
| CMake | find_package(Qt6 REQUIRED COMPONENTS 3danimation) target_link_libraries(mytarget PRIVATE Qt6::3danimation) |
| qmake | QT += 3danimation |
| 由以下类实例化 | AnimationController |
| 继承自 | QObject |
属性
|
|
公共函数
| QAnimationController(QObject *parent = nullptr) | |
| int | activeAnimationGroup() const |
| void | addAnimationGroup(Qt3DAnimation::QAnimationGroup *animationGroup) |
| QList<Qt3DAnimation::QAnimationGroup *> | animationGroupList() |
| Qt3DCore::QEntity * | entity() const |
| int | getAnimationIndex(const QString &name) const |
| Qt3DAnimation::QAnimationGroup * | getGroup(int index) const |
| float | position() const |
| float | positionOffset() const |
| float | positionScale() const |
| bool | recursive() const |
| void | removeAnimationGroup(Qt3DAnimation::QAnimationGroup *animationGroup) |
| void | setAnimationGroups(const QList<Qt3DAnimation::QAnimationGroup *> &animationGroups) |
公共槽
| void | setActiveAnimationGroup(int index) |
| void | setEntity(Qt3DCore::QEntity *entity) |
| void | setPosition(float position) |
| void | setPositionOffset(float offset) |
| void | setPositionScale(float scale) |
| void | setRecursive(bool recursive) |
信号
| void | activeAnimationGroupChanged(int index) |
| void | entityChanged(Qt3DCore::QEntity *entity) |
| void | positionChanged(float position) |
| void | positionOffsetChanged(float offset) |
| void | positionScaleChanged(float scale) |
| void | recursiveChanged(bool recursive) |
详细描述
Qt3DAnimation::QAnimationController 类用于控制动画的选择和播放。该类可以将从 Qt3DCore::QEntity 树中找到的所有动画组合在一起,并从具有相同名称的动画中创建 QAnimationGroups。用户可以通过设置活动动画来选择当前由动画控制器控制的动画组。然后将动画位置经过缩放和偏移 positionScale/positionOffset 后传播到该组。
注意:动画控制器没有内部定时器,而用户需要及时更新位置属性。
属性说明
activeAnimationGroup : int
包含当前活动的动画组。
访问函数
| int | activeAnimationGroup() const |
| void | setActiveAnimationGroup(int index) |
通知信号
| void | activeAnimationGroupChanged(int index) |
entity : Qt3DCore::QEntity*
包含动画所收集和组合的实体。如果控制器已经包含动画,则它们将被清除。
访问函数
| Qt3DCore::QEntity * | entity() const |
| void | setEntity(Qt3DCore::QEntity *entity) |
通知信号
| void | entityChanged(Qt3DCore::QEntity *entity) |
position : float
包含动画的当前位置。当设置位置时,它会根据 positionScale/positionOffset 缩放和偏移,并传播到活动动画组。
访问函数
| float | position() const |
| void | setPosition(float position) |
通知信号
| void | positionChanged(float position) |
positionOffset : float
包含动画的位置偏移量。
访问函数
| float | positionOffset() const |
| void | setPositionOffset(float offset) |
通知信号
| void | positionOffsetChanged(float offset) |
positionScale : float
包含动画的位置缩放比例。
访问函数
| float | positionScale() const |
| void | setPositionScale(float scale) |
通知信号
| void | positionScaleChanged(float scale) |
recursive : bool
是否在收集实体动画时递归搜索实体树。如果设置为 true,则还会从实体的子实体中搜索动画。如果设置为 false,则只搜索传递给控制器的实体。
访问函数
| bool | recursive() const |
| void | setRecursive(bool recursive) |
通知信号
| void | recursiveChanged(bool recursive) |
成员函数文档
QAnimationController::QAnimationController(QObject *parent = nullptr)
使用指定的 parent 构造一个新的 QAnimationController。
void QAnimationController::addAnimationGroup(Qt3DAnimation::QAnimationGroup *animationGroup)
将指定的 animationGroup 添加到控制器中。
QList<Qt3DAnimation::QAnimationGroup *> QAnimationController::animationGroupList()
返回控制器当前持有的动画组列表。
[可调用] int QAnimationController::getAnimationIndex(const QString &name) const
返回名为 name 的动画的索引。如果未找到具有给定名称的 AnimationGroup,则返回 -1。
注意:此函数可以通过元对象系统和 QML 调用。有关详细信息,请参阅 Q_INVOKABLE。
[可调用] Qt3DAnimation::QAnimationGroup *QAnimationController::getGroup(int index) const
返回具有给定 index 的 AnimationGroup。
注意:此函数可以通过元对象系统和 QML 调用。有关详细信息,请参阅 Q_INVOKABLE。
void QAnimationController::removeAnimationGroup(Qt3DAnimation::QAnimationGroup *animationGroup)
从控制器中删除指定的 animationGroup。
void QAnimationController::setAnimationGroups(const QList<Qt3DAnimation::QAnimationGroup *> &animationGroups)
为控制器设置 animationGroups。旧组将被清除。
© 2024 Qt 公司 Ltd. 本文档中包含的贡献的文档版权属于其各自的拥有者。本文档下的文档是根据自由软件基金会发布的 GNU 自由文档许可协议版本 1.3 授予的。Qt 和相应的标识是芬兰的 Qt 公司及其在全球的注册商标。所有其他商标均为其各自拥有者的财产。