Skip to content

WorldUnit

物理组件。可通过 World:CreateUnit("WorldUnit", {...}) 创建,字段属性可直接读写。

概览

三维世界中的实体单位,同时承载物理模拟与渲染表现。通过配置物理类型、质量、重力与阻尼决定其运动行为,用网格资源呈现外观,并支持碰撞分组、碰撞事件、被抓举、可攀爬及自定义投掷等交互能力。可对实体施加力、冲量或力矩,也能读取或修改其线速度与角速度。

继承自 SpaceUnit;可通过 World:CreateUnit("WorldUnit", ...) 创建;返回单位数组

属性

名称类型默认值说明
RenderMeshIdString-表示该 WorldUnit 显示时所使用的模型资源标识。
ModelBindParentBool-启用后,当父节点为 WorldUnit、RenderUnit、TriggerUnit、PhysicsUnit 等支持父子带动的场景单位时,当前单位将整体跟随父节点运动,保持与父节点的相对位置和旋转。运行时可通过脚本设置 .ModelBindParent = true/false 动态切换该行为。
TransparentRenderBiasInt-控制半透明物体的渲染层级偏置,值越小越先渲染。仅影响半透明物体,不透明物体不受此偏置影响。取值范围 [-15, 16],超出会被截断到边界。注意:仅当遮挡规则(OcclusionType)为 组件半透明/镜头前推/玩家虚影 时生效;为 不处理 时本偏置不生效
PhysicsMeshIdString-物理网格资源ID。缺省时,若初始创建时传入了 RenderMeshId,则默认使用该 RenderMeshId 作为物理资源;后续修改 .RenderMeshId 不会影响 PhysicsMeshId
BodyTypeInt-物体的物理运动类型:静态(Static)不可修改,运动学(Kinematic)仅通过脚本逻辑驱动,动态(Dynamic)参与完整物理模拟
PhysicsActiveBool-是否启用物理模拟,关闭后物体不参与碰撞和物理计算
CollisionGroupString-物体所属的碰撞组名称,用于按碰撞组规则过滤碰撞关系
CanCollideBool-是否参与物理碰撞,关闭后物体将穿透其他物体
CanTouchBool-其他物体碰到此物体时,是否触发此物体的碰撞事件
CanTriggerBool-此物体碰到其他物体时,是否触发对方的碰撞事件
MassFloat-物体的质量,仅对动态(Dynamic)物体生效
MasslessBool-启用后此物体的质量不计入父级装配体的总质量
CustomPhysicalPropertiesPhysicalProperties-自定义物理材质参数(摩擦力、弹性、密度等),为空时使用默认值
CenterOfMassVector3-物体在局部空间中的质心偏移位置
GravityEnabledBool-是否受重力影响,仅对动态(Dynamic)物体生效
UseIndividualGravityBool-启用后使用自定义的重力方向和大小替代全局重力
IndividualGravityValueVector3-自定义重力的方向和大小,默认为 (0, -9.8, 0)
LinearDampingFloat-线速度的阻尼系数,值越大减速越快,仅对动态(Dynamic)物体生效
AngularDampingFloat-角速度的阻尼系数,值越大旋转减速越快,仅对动态(Dynamic)物体生效
ClimbableBool-玩家角色是否可以攀爬此物体,仅对静态(Static)物体生效
LiftableBool-玩家角色是否可以抓举此物体,仅对动态(Dynamic)物体生效
UseCustomThrownAngleBool-启用后使用自定义的投掷角度替代默认投掷角度
CustomThrownAngleFloat-自定义的投掷角度,正值向上抛,负值向下抛
UseCustomThrownForceBool-启用后使用自定义的投掷力替代默认投掷力
CustomThrownForceFloat-自定义的投掷力度
CanQueryBool-是否参与空间射线检测(Raycast、Spherecast 等),关闭后射线将穿透此物体