Object3D QML 类型

所有 3D 节点和资源的抽象基类。 更多...

导入语句import QtQuick3D
实例化 QQuick3DObject
继承

QtObject

继承自
15 个类型

Effect几何体InstanceListEntryInstanceModelInstanceRangeInstancing材料NodeParticle3DRenderExtensionResourceLoaderSceneEnvironment皮肤纹理,以及 TextureData

属性

详细描述

Object3D 是所有 Qt Quick 3D 类型的基类。这包括

  • 空间类型,代表 3D 场景中的对象,这些类型通常具有位置和/或方向。例如,模型相机光照。这些类型继承自 Node,而 Node 继承自 Object3D。
  • 资源类型,它们自身并不代表 3D 世界的对象,而是作为 Node 子类的组件,提供某种类型的数据。这包括,但不仅限于 材料几何体纹理

除了上述类型外,Object3D 还可以作为 Qt Quick 项目 以及任意 QObject 实例的父级。有关将 2D 项目添加到 3D 场景的信息,请参阅 Qt Quick 3D 场景与 2D 内容

另请参阅 Node.

属性文档

children : list<Object3D>

resources : list<Object>

子属性包含此对象的视觉子对象的列表。资源属性包含您想要通过名称引用的非视觉资源。

在添加子对象或资源时通常不需要引用这些属性,因为默认的 data 属性将自动将子对象分配给 childrenresources 属性。有关详细信息,请参阅 QtQuick3D::Object3D::data 文档。

注意:尽管名为 QtQuick3D::Object3D::resources,但该属性并不返回3D资源列表。名称来自 QQuickItem 的语义。3D资源是 QQuickObjec3D 的子类,因此将包含在 QtQuick3D::Objec3D::children 列表中。


data : list<Object> [默认]

数据属性允许您在一个对象中自由混合 Object3D 子对象和资源。如果您将 Object3D 分配给数据列表,它将成为一个子对象;如果分配任何其他类型的对象,它将作为一个资源添加。

因此,您可以编写

而不是

Item {
    children: [
        Node {},
        DirectionalLight {}
    ]
    resources: [
        Timer {}
    ]
}

通常不需要引用 data 属性,因为它是 Object3D 的默认属性,因此所有子对象都将自动分配给此属性。


parent : Object3D

此属性持有 3D 场景中 Object3D 的父对象。

注意:Object3D 的父对象可能与其实际的对象父对象不同。这是必要的,因为对象父对象可能是一个非 Object3D 类型的项目,例如场景的根对象。


state : string

此属性持有对象的当前状态的名称。

如果项目处于其默认状态,即没有设置显式状态,则此属性为空字符串。同样,您也可以通过将此属性设置为空字符串将项目返回到其默认状态。

参见:Qt Quick States.


states : list<State>

此属性持有此对象的可能状态的列表。要更改此对象的状态,将 state 属性设置为这些状态之一,或将 state 属性设置为空字符串以将对象恢复到其默认状态。

该属性指定为 State 对象的列表。例如,以下是一个具有 "above_state" 和 "below_state" 状态的 QtQuick3D::Node

import QtQuick
import QtQuick3D

Node {
    id: root
    y: 0

    states: [
        State {
            name: "above_state"
            PropertyChanges { target: root; y: 100 }
        },
        State {
            name: "below_state"
            PropertyChanges { target: root; y: -100 }
        }
    ]
}

有关使用状态和转换的更多信息,请参阅 Qt Quick StatesAnimation and Transitions in Qt Quick.

注意:此属性与 QtQuick::Item::states 工作方式相同,但这是必要的,因为 QtQuick3D::Object3D 不是 QtQuick::Item 子类。

参见:QtQuick3D::Object3D::transitions.


transitions : list<Transition>

此属性持有此对象的所有转换列表。这些定义了对象在其 state 发生更改时要应用的转换。

该属性指定为 Transition 对象的列表。例如

import QtQuick
import QtQuick3D

Node {
    transitions: [
        Transition {
            //...
        },
        Transition {
            //...
        }
    ]
}

有关使用状态和转换的更多信息,请参阅 Qt Quick StatesAnimation and Transitions in Qt Quick.

注意:此属性与 QtQuick::Item::transitions 工作方式相同,但这是必要的,因为 QtQuick3D::Object3D 不是 QtQuick::Item 子类。

另请参阅 QtQuick3D::Object3D::states.


© 2024 The Qt Company Ltd. 本文档中包含的贡献均属于各自所有者的版权。本文档的提供适用《GNU自由文档许可证》第1.3版本的条款,由自由软件基金会发布。Qt及其相应标志是The Qt Company Ltd.在芬兰及全球其他国家的商标。其他所有商标均为各自所有者财产。