📦 道具
道具代表一个可以在世界中生成的动态网格体,它拥有物理效果,并可以被角色抓取并移动。

🔁Network Authority Distribution
This class have the Network Authority distribution enabled and automatically handled by the server. You can override the Network Authority or disable it from automatically distributing.
👪Inheritance
🧑💻API Source
This page is auto-generated! The Functions, Properties and Events described here are defined in our GitHub's API Repository! Feel free to commit suggestions and changes to the source .json API files!
🎒 示例
local my_prop = Prop(
Vector(-900, 185, 215),
Rotator(0, 90, 90),
"nanos-world::SM_Crate_07"
)
🛠 构造函数
Default Constructor
No description provided
local my_prop = Prop(location, rotation, asset, collision_type?, gravity_enabled?, grab_mode?, ccd_mode?, defer_spawn?)
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Vector | location | Required parameter | No description provided |
| Rotator | rotation | Required parameter | No description provided |
| StaticMesh Reference | asset | Required parameter | No description provided |
| CollisionType | collision_type | CollisionType.Auto | 设为 CollisionType.Auto 时,如果道具的半径小于 40 个单位,它将在 Normal 和 IgnoreOnlyPawn 之间自动切换。 |
| boolean | gravity_enabled | true | No description provided |
| GrabMode | grab_mode | GrabMode.Auto | 该道具是否可以被抓取 |
| CCDMode | ccd_mode | CCDMode.Auto | 该道具是否应当启用 CCD(如果道具较小,禁用此项可能会导致其穿透物体)。在“仅限视觉效果”的道具上强制禁用它是明智的选择。 |
| boolean | defer_spawn | false | 传入 true 以避免立即将该实体发送给客户端,从而在你想要通过设置多个配置来调整它时提高性能。最后必须调用 FinishSpawn() |
信息
If the Prop was spawned by the Client. It will have all interactions disabled (e.g. it will not be able to be grabbed by Characters).
信息
Props smaller than radius 40 units or very thin (any side smaller than 20 units) will have CCD (Continuous Collision Detection) enabled automatically to avoid falling through the floor or other objects. This will slightly increase the performance cost of them!
🗿 静态函数
Inherited Entity Static Functions
Prop inherits from Base Entity Class, sharing it's methods and functions:
Base Entityscripting-reference/classes/base-classes/entity
Base Entityscripting-reference/classes/base-classes/entity
| Returns | Name | Description | |
|---|---|---|---|
| table of Base Entity | GetAll | 返回一个包含调用此方法的类中所有实体的表 | |
| Base Entity | GetByIndex | 返回该类中指定索引处的特定实体 | |
| integer | GetCount | 返回该类当前存在的实体数量 | |
| table of table | GetInheritedClasses | 获取使用 继承系统 创建的、直接继承自该类的所有子类列表 | |
| iterator | GetPairs | 返回一个包含该类所有实体的迭代器,用于 pairs() 循环 | |
| table or nil | GetParentClass | 如果该类是使用 继承系统 创建的,则获取其父类 | |
| table | Inherit | 使用 继承系统 继承此类 | |
| boolean | IsChildOf | 如果该类是使用 继承系统 创建的,检查此类是否为另一个类的子类 | |
| function | Subscribe | 为该类的所有实体订阅一个 事件 | |
| function | SubscribeRemote | 订阅从服务器调用的自定义远程事件 | |
Unsubscribe | 退订此包内该类中此 事件 的所有回调,或者仅取消传入的特定回调 |
This class doesn't have own static functions.
🦠 函数
Inherited Entity Functions
Prop inherits from Base Entity Class, sharing it's methods and functions:
Base Entityscripting-reference/classes/base-classes/entity
Base Entityscripting-reference/classes/base-classes/entity
| Returns | Name | Description | |
|---|---|---|---|
BroadcastRemoteEvent | 直接在此实体上向所有玩家调用自定义远程事件 | ||
BroadcastRemoteInRadiusEvent | 直接针对此实体调用自定义远程事件,并将该事件传递给半径范围内的所有玩家 | ||
CallRemoteEvent | 直接在此实体上向特定玩家调用自定义远程事件 | ||
CallRemoteEvent | 直接在此实体上调用自定义远程事件 | ||
CallRemotePlayersEvent | 直接在此实体上调用自定义远程事件,并将事件传递给玩家列表 | ||
Destroy | 销毁该实体 | ||
FinishSpawn | 完成生成过程,如果实体是通过 defer_spawn 生成的,则将实体发送给客户端 | ||
| table of string | GetAllValuesKeys | 获取所有值键的列表 | |
| table | GetClass | 获取该实体的类 | |
| integer | GetID | 获取该实体的全网通用网络 ID(在客户端和服务器上相同) | |
| any | GetValue | 获取此实体上存储在给定键处的 值 | |
| boolean | HasAuthority | 获取本地上下文是否对此实体拥有主控(如果由客户端生成则为 true,由服务器生成则为 false) | |
| boolean | IsA | 递归检查此实体是否继承自某个类 | |
| boolean | IsBeingDestroyed | 如果该实体正在被销毁,则返回 true | |
| boolean | IsValid | 如果该实体有效(即未被销毁且指向一个有效的实体),则返回 true | |
SetValue | 在此实体中设置一个值 | ||
| function | Subscribe | 在这个特定实体上订阅一个事件 | |
| function | SubscribeRemote | 在这个特定实体上订阅一个从服务器调用的自定义远程事件 | |
Unsubscribe | 退订此包内该实体中此 事件 的所有回调,或者仅取消传入的特定回调 |
Inherited Actor Functions
Prop inherits from Base Actor Class, sharing it's methods and functions:
Base Actorscripting-reference/classes/base-classes/actor
Base Actorscripting-reference/classes/base-classes/actor
| Returns | Name | Description | |
|---|---|---|---|
AddActorTag | 向该 Actor 添加一个虚幻 Actor 标签 | ||
AddAngularImpulse | 向该 Actor 添加角冲量。适用于单次瞬间爆发 | ||
AddImpulse | 向该 Actor 添加冲量。适用于单次瞬间爆发 | ||
| boolean | AttachTo | 将该 Actor 附加到任何其他 Actor 上,可选择附加在特定骨骼处 | |
Detach | 将该 Actor 从其附加的 Actor 上分离 | ||
| table of string | GetActorTags | 获取该 Actor 上的所有虚幻 Actor 标签 | |
| Vector | GetAngularForce | 获取该 Actor 的角外力(由 SetAngularForce() 设置) | |
| table of Base Actor | GetAttachedEntities | 获取附加到该 Actor 的所有 Actor | |
| Base Actor or nil | GetAttachedTo | 获取该 Actor 所附加到的父级 Actor | |
| table | GetBounds | 获取该 Actor 的边界范围 | |
| CollisionType | GetCollision | 获取该 Actor 的碰撞类型 | |
| integer | GetDimension | 获取该 Actor 的维度 | |
| float | GetDistanceFromCamera | 获取该 Actor 距离相机的距离 | |
| Vector | GetForce | 获取该 Actor 的持续外力(由 SetForce() 设置) | |
| Vector | GetLocation | 获取该 Actor 在游戏世界中的位置 | |
| Player or nil | GetNetworkAuthority | 获取该 Actor 的网络主控玩家 | |
| Vector | GetRelativeLocation | 如果该 Actor 已附加,获取其相对位置 | |
| Rotator | GetRelativeRotation | 如果该 Actor 已附加,获取其相对旋转 | |
| Rotator | GetRotation | 获取该 Actor 在游戏世界中的角度值 | |
| Vector | GetScale | 获取该 Actor 的缩放比例 | |
| float | GetScreenPercentage | 获取该 Actor 在屏幕中所占尺寸的百分比 | |
| table | GetSocketTransform | 在给定骨骼或插槽名称的情况下,获取世界空间中的插槽变换 | |
| Vector | GetVelocity | 获取该 Actor 当前的速度 | |
| boolean | HasNetworkAuthority | 如果本地玩家当前是该 Actor 的网络主控(Network Authority),则返回 true | |
| boolean | IsGravityEnabled | 如果该 Actor 启用了重力,则返回 true | |
| boolean | IsInWater | 如果该 Actor 处于水中,则返回 true | |
| boolean | IsNetworkDistributed | 如果该 Actor 当前处于网络分配状态,则返回 true | |
| boolean | IsVisible | 如果该 Actor 可见,则返回 true | |
RemoveActorTag | 从该 Actor 中移除一个虚幻 Actor 标签 | ||
RotateTo | 在一定时间内平滑旋转该 Actor 到指定角度 | ||
SetAngularForce | 向该 Actor 添加一个永久的角外力,设为 Vector(0, 0, 0) 可以取消 | ||
SetCastShadow | 设置该 Actor 是否投射阴影 | ||
SetCollision | 设置该 Actor 的碰撞类型 | ||
SetDimension | 设置该 Actor 的维度 | ||
SetDistanceOptimizationMultiplier | 设置此 Actor 的距离优化系数 | ||
SetForce | Adds a permanent force to this Actor, set to Vector(0, 0, 0) to cancel | ||
SetGravityEnabled | Sets whether gravity is enabled on this Actor | ||
SetHighlightEnabled | Sets whether the highlight is enabled on this Actor, and which highlight index to use | ||
SetLifeSpan | Sets the time (in seconds) before this Actor is destroyed. After this time has passed, the actor will be automatically destroyed. | ||
SetLocation | Sets this Actor's location in the game world | ||
SetNetworkAuthority | Sets the Player to have network authority over this Actor | ||
SetNetworkAuthorityAutoDistributed | Sets if this Actor will auto distribute the network authority between players | ||
SetOutlineEnabled | Sets whether the outline is enabled on this Actor, and which outline index to use | ||
SetRelativeLocation | Sets this Actor's relative location in local space (only if this actor is attached) | ||
SetRelativeRotation | Sets this Actor's relative rotation in local space (only if this actor is attached) | ||
SetRenderCullDistance | Sets this Actor's render cull distance | ||
SetRotation | Sets this Actor's rotation in the game world | ||
SetScale | Sets this Actor's scale | ||
SetVisibility | Sets whether the actor is visible or not | ||
TranslateTo | Smoothly moves this actor to a location over a certain time | ||
| boolean | WasRecentlyRendered | Gets if this Actor was recently rendered on screen |
Inherited Paintable Functions
Prop inherits from Base Paintable Class, sharing it's methods and functions:
Base Paintablescripting-reference/classes/base-classes/paintable
Base Paintablescripting-reference/classes/base-classes/paintable
| Returns | Name | Description | |
|---|---|---|---|
| Color | GetMaterialColorParameter | 从该 Actor 的材质中获取 Color 参数 | |
| float | GetMaterialScalarParameter | 从该 Actor 的材质中获取 Scalar 参数 | |
| string | GetMaterialTextureParameter | 从该 Actor 的材质中获取 Texture 参数 | |
| Vector | GetMaterialVectorParameter | 从该 Actor 的材质中获取 Vector 参数 | |
ResetMaterial | 将指定索引处的材质重置为原始材质 | ||
SetMaterial | 设置该 Actor 指定索引处的材质 | ||
SetMaterialColorParameter | 设置该 Actor 材质中的 Color 参数 | ||
SetMaterialFromCanvas | 将该 Actor 指定索引处的材质设为 Canvas 对象 | ||
SetMaterialFromSceneCapture | 将该 Actor 指定索引处的材质设为 SceneCapture 对象 | ||
SetMaterialFromWebUI | 将该 Actor 指定索引处的材质设为 WebUI 对象 | ||
SetMaterialScalarParameter | 设置该 Actor 材质中的 Scalar 参数 | ||
SetMaterialTextureParameter | 将该 Actor 材质中的纹理参数设为一张图像 | ||
SetMaterialVectorParameter | 设置该 Actor 材质中的 Vector 参数 | ||
SetPhysicalMaterial | 使用新的物理材质覆盖该 Actor 的物理材质 |
| Returns | Name | Description | |
|---|---|---|---|
| GrabMode | GetGrabMode | 获取抓取该道具的能力 | |
| Character or nil | GetHandler | 获取当前正手持该物体的角色(如果存在) | |
| float | GetMassOverride | 获取覆盖的质量 | |
| float | GetMassScale | 获取质量缩放值 | |
| StaticMesh Reference | GetMesh | 获取资产名称 | |
SetGrabMode | 设置角色抓取该道具的能力 | ||
SetInteractionToolTipText | 设置角色与该道具交互时显示的交互提示文本 | ||
SetMassOverride | 覆盖该道具的质量(千克) | ||
SetMassScale | 更改用于计算该道具质量的质量缩放值 | ||
SetMesh | 在运行时更改网格体 | ||
SetPhysicsDamping | 设置该道具的物理阻尼 |


GetGrabMode
获取抓取该道具的能力
local grab_mode = my_prop:GetGrabMode()
Returns
| Type | Description |
|---|---|
| GrabMode | grab_mode |
See also SetGrabMode.


GetHandler
获取当前正手持该物体的角色(如果存在)
local handler = my_prop:GetHandler()


GetMassOverride
获取覆盖的质量
local ret = my_prop:GetMassOverride()
Returns
| Type | Description |
|---|---|
| float | 覆盖的质量 |
See also SetMassOverride.


GetMassScale
获取质量缩放值
local ret = my_prop:GetMassScale()
Returns
| Type | Description |
|---|---|
| float | 质量缩放值 |
See also SetMassScale.


GetMesh
获取资产名称
local asset = my_prop:GetMesh()
Returns
| Type | Description |
|---|---|
| StaticMesh Reference | 资产名称 |
See also SetMesh.


SetGrabMode
设置角色抓取该道具的能力
my_prop:SetGrabMode(grab_mode)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| GrabMode | grab_mode | Required parameter | 该道具是否可以被抓取。设为 Auto 将根据道具的大小自动决定。 |
See also GetGrabMode.


SetInteractionToolTipText
设置角色与该道具交互时显示的交互提示文本
my_prop:SetInteractionToolTipText(tool_tip_text)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | tool_tip_text | Required parameter | 要在交互提示中显示的文本 |


SetMassOverride
覆盖该道具的质量(千克)
my_prop:SetMassOverride(mass)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| float | mass | Required parameter | 要覆盖的质量(千克)。传入 -1 可重置为默认值 |
See also GetMassOverride.


SetMassScale
更改用于计算该道具质量的质量缩放值
my_prop:SetMassScale(scale)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| float | scale | Required parameter | No description provided |
See also GetMassScale.


SetMesh
在运行时更改网格体
my_prop:SetMesh(asset)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| StaticMesh Reference | asset | Required parameter | 资产 |
See also GetMesh.


SetPhysicsDamping
设置该道具的物理阻尼
my_prop:SetPhysicsDamping(linear_damping, angular_damping)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| float | linear_damping | Required parameter | 线速度阻尼值 |
| float | angular_damping | Required parameter | 角速度阻尼值 |
🚀 事件
Inherited Entity Events
Prop inherits from Base Entity Class, sharing it's events:
Base Entityscripting-reference/classes/base-classes/entity
Base Entityscripting-reference/classes/base-classes/entity
| Name | Description | |
|---|---|---|
ClassRegister | 当使用 继承系统 注册一个新类时触发 | |
Destroy | 当实体被销毁时触发 | |
Spawn | 当实体被生成/创建时触发 | |
ValueChange | 当实体通过 :SetValue() 改变了值时触发 |
Inherited Actor Events
Prop inherits from Base Actor Class, sharing it's events:
Base Actorscripting-reference/classes/base-classes/actor
Base Actorscripting-reference/classes/base-classes/actor
| Name | Description | |
|---|---|---|
DimensionChange | 当 Actor 改变其维度时触发 |
| Name | Description | |
|---|---|---|
Grab | 当角色抓取道具时触发 | |
Hit | 当该道具撞击到某种物体时触发 | |
Interact | 当角色与该道具交互时触发(即尝试抓取它) | |
TakeDamage | 当道具受到伤害时触发 | |
UnGrab | 当该道具被取消抓取时触发 |

Grab
当角色抓取道具时触发
Prop.Subscribe("Grab", function(self, character)
-- Grab was called
end)

Hit
当该道具撞击到某种物体时触发
Prop.Subscribe("Hit", function(self, impact_force, normal_impulse, impact_location, velocity, other_actor)
-- Hit was called
end)
Arguments
| Type | Argument | Description |
|---|---|---|
| Prop | self | 被撞击的道具 |
| float | impact_force | 撞击力度,已根据道具的重量进行归一化处理 |
| Vector | normal_impulse | 撞击的冲量方向 |
| Vector | impact_location | 撞击在世界 3D 空间中的位置 |
| Vector | velocity | 撞击瞬间该道具的速度 |
| Base Actor or nil | other_actor | 与该道具发生撞击的另一个 Actor |

Interact
当角色与该道具交互时触发(即尝试抓取它)
返回 false 以阻止该交互(例如防止被抓取)
Prop.Subscribe("Interact", function(self, character)
-- Interact was called
return true
end)

TakeDamage
当道具受到伤害时触发
Prop.Subscribe("TakeDamage", function(self, damage, bone, type, from_direction, instigator, causer)
-- TakeDamage was called
end)
Arguments
| Type | Argument | Description |
|---|---|---|
| Prop | self | 受到伤害的对象 |
| integer | damage | 伤害量 |
| string | bone | 受损的骨骼 |
| DamageType | type | 伤害类型 |
| Vector | from_direction | 伤害相对于受伤 Actor 的方向 |
| Player or nil | instigator | 造成伤害的玩家 |
| Base Actor or nil | causer | 造成伤害的对象 |

UnGrab
当该道具被取消抓取时触发
Prop.Subscribe("UnGrab", function(self, character)
-- UnGrab was called
end)