🔪 近战
Melee 代表一个可以被角色捡起的实体,并可用于近战攻击。角色可以用预定义的持握模式双手持握它。

💂Authority
This class can only be spawned on 🟦 Server side.
🔁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 crowbar = Melee(
Vector(-900, 185, 215),
Rotator(0, 90, 90),
"nanos-world::SM_Crowbar_01",
CollisionType.Normal,
true,
HandlingMode.SingleHandedMelee,
""
)
crowbar:SetScale(Vector(1.5, 1.5, 1.5))
crowbar:AddAnimationCharacterUse("nanos-world::AM_Mannequin_Melee_Slash_Attack")
crowbar:SetDamageSettings(0.3, 0.5)
crowbar:SetCooldown(1.0)
crowbar:SetBaseDamage(40)
🛠 构造函数
Default Constructor
No description provided
local my_melee = Melee(location, rotation, asset, collision_type?, gravity_enabled?, handling_mode?, crosshair_material?, can_use?, 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 | No description provided |
| boolean | gravity_enabled | true | No description provided |
| HandlingMode | handling_mode | HandlingMode.Torch | No description provided |
| Material Reference | crosshair_material | | No description provided |
| boolean | can_use | true | No description provided |
| boolean | defer_spawn | false | 传入 true 以避免立即将该实体发送给客户端,从而在你想要通过设置多个配置来调整它时提高性能。最后必须调用 FinishSpawn() |
提示
nanos world provides a special Particle* called nanos-world::P_Grenade_Special which spawns different particles depending on the surface it explodes, and also if is underwater.
*This "Particle" is just a special identifier which can only be used on Grenades!
🗿 静态函数
Inherited Entity Static Functions
Melee 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
Melee 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
Melee 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() 设置) | |
| float | GetAngularVelocity | Returns the angular velocity of this Actor | |
| 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 在游戏世界中的位置 | |
| float | GetMass | Returns the mass of this 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 | Sets this Actor's distance optimization multiplier | ||
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
Melee 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 的物理材质 |
Inherited Pickable Functions
Melee inherits from Base Pickable Class, sharing it's methods and functions:
Base Pickablescripting-reference/classes/base-classes/pickable
Base Pickablescripting-reference/classes/base-classes/pickable
| Returns | Name | Description | |
|---|---|---|---|
AddSkeletalMeshAttached | 附加一个骨骼网格体作为该实体的骨骼主姿态 | ||
AddStaticMeshAttached | 附加一个静态网格体到此实体 | ||
| table of string | GetAllSkeletalMeshAttached | 获取附加到此实体的所有骨骼网格体 | |
| table of string | GetAllStaticMeshAttached | 获取附加到此实体的所有静态网格体 | |
| Character or nil | GetHandler | 获取当前正手持该可拾取物的角色(如果存在) | |
| HandlingMode | GetHandlingMode | 获取该可拾取物的手持模式 | |
| SkeletalMesh Reference | GetMesh | 获取该可拾取物使用的资产名称 | |
PullUse | 拉取该可拾取物的使用状态(如果这是武器,将开始开火) | ||
ReleaseUse | 释放该可拾取物的使用状态(如果这是武器,将停止开火) | ||
RemoveAllSkeletalMeshesAttached | 移除所有已附加的骨骼网格体 | ||
RemoveAllStaticMeshesAttached | 移除所有已附加的静态网格体 | ||
RemoveSkeletalMeshAttached | 根据自定义 ID 移除此可拾取物上已存在的骨骼网格体(如果存在) | ||
RemoveStaticMeshAttached | 根据自定义 ID 移除此可拾取物上已存在的静态网格体(如果存在) | ||
SetAttachmentSettings | 设置此可拾取物的附加设置(即拾取时如何附加到角色上) | ||
SetCanUse | 设置玩家在手持该可拾取物时是否可以使用它 | ||
SetCrosshairMaterial | 设置该可拾取物的准星材质 | ||
SetPickable | 设置玩家是否可以从地面上拾取该可拾取物 | ||
SetStaticMeshAttachedTransform | 设置已附加静态网格体的位置和旋转 |
| Returns | Name | Description | |
|---|---|---|---|
AddAnimationCharacterUse | 设置攻击时的动画 | ||
ClearAnimationsCharacterUse | 清除角色的攻击动画列表 | ||
| table of Animation Reference | GetAnimationsCharacterUse | 获取角色使用该武器时的动画 | |
| integer | GetBaseDamage | 获取基础伤害 | |
| float | GetCooldown | 获取两次使用之间的冷却时间 | |
| Sound Reference | GetSoundUse | 获取角色使用该武器时的声音 | |
SetBaseDamage | 设置基础伤害 | ||
SetCooldown | 设置攻击之间的冷却时间 | ||
SetDamageSettings | 设置开始应用伤害和结束伤害的时间 | ||
SetImpactSound | 设置击中物体时的声音 | ||
SetSoundUse | 设置攻击时的声音 |


AddAnimationCharacterUse
设置攻击时的动画
你可以添加多个动画,攻击时将随机选择其中一个动画
my_melee:AddAnimationCharacterUse(asset_path, play_rate?, slot_Type?)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| Animation Reference | asset_path | Required parameter | 攻击时使用的动画 |
| float | play_rate? | 1.0 | 动画播放速率 |
| AnimationSlotType | slot_Type? | AnimationSlotType.UpperBody | 是在上半身播放还是全身播放 |


ClearAnimationsCharacterUse
清除角色的攻击动画列表
my_melee:ClearAnimationsCharacterUse()


GetAnimationsCharacterUse
获取角色使用该武器时的动画
local ret = my_melee:GetAnimationsCharacterUse()
Returns
| Type | Description |
|---|---|
| table of Animation Reference | No description provided |


GetBaseDamage
获取基础伤害
local damage = my_melee:GetBaseDamage()
Returns
| Type | Description |
|---|---|
| integer | damage |
See also SetBaseDamage.


GetCooldown
获取两次使用之间的冷却时间
local cooldown = my_melee:GetCooldown()
Returns
| Type | Description |
|---|---|
| float | cooldown |
See also SetCooldown.


GetSoundUse
获取角色使用该武器时的声音
local asset_path = my_melee:GetSoundUse()
Returns
| Type | Description |
|---|---|
| Sound Reference | asset_path |
See also SetSoundUse.


SetBaseDamage
设置基础伤害
my_melee:SetBaseDamage(damage?)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| integer | damage? | | 基础伤害值 |
See also GetBaseDamage.


SetCooldown
设置攻击之间的冷却时间
my_melee:SetCooldown(cooldown)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| float | cooldown | Required parameter | No description provided |
See also GetCooldown.


SetDamageSettings
设置开始应用伤害和结束伤害的时间。在此期间,近战武器的碰撞将被启用,如果击中物体则会应用伤害
my_melee:SetDamageSettings(damage_start_time, damage_duration_time)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| float | damage_start_time | Required parameter | 开始应用伤害的初始时间 |
| float | damage_duration_time | Required parameter | 停止应用伤害的持续时间 |


SetImpactSound
设置击中物体时的声音
my_melee:SetImpactSound(surface_type, asset_path, volume?, pitch?)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| SurfaceType | surface_type | Required parameter | 应用声音的表面。使用 SurfaceType.Default 作为所有未定义表面的默认设置。注:Water 和 Flesh 表面已有默认声音,必须显式覆盖 |
| Sound Reference | asset_path | Required parameter | 攻击时使用的声音 |
| float | volume? | 1.0 | No description provided |
| float | pitch? | 1.0 | No description provided |


SetSoundUse
设置攻击时的声音
my_melee:SetSoundUse(asset_path)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| Sound Reference | asset_path | Required parameter | 攻击时使用的声音 |
See also GetSoundUse.
🚀 事件
Inherited Entity Events
Melee 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
Melee 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 改变其维度时触发 | |
NetworkAuthorityChange | Triggered when an Actor changes its network authority Player | |
NetworkAuthorityChange | Triggered when the local Player gets/loses network authority over this actor |
Inherited Pickable Events
Melee inherits from Base Pickable Class, sharing it's events:
Base Pickablescripting-reference/classes/base-classes/pickable
Base Pickablescripting-reference/classes/base-classes/pickable
| Name | Description | |
|---|---|---|
Attack | 当角色有效地使用该近战武器进行攻击时触发 |

Attack
当角色有效地使用该近战武器进行攻击时触发
Melee.Subscribe("Attack", function(self, handler)
-- Attack was called
end)