跳至正文
版本:bleeding-edge 🩸

武器瞄准镜

这段示例代码展示了如何将自定义瞄准镜网格体附加到武器上,并使其作为真正的瞄准镜工作。

此代码段使用了来自 default-weapons 包的 AK47 武器,请先将其添加到 Package.toml 的 packages_requirements 中。

Server/Index.lua
-- 生成 AK47(default-weapons 类既可作为全局变量使用,也可在 NanosWorldWeapons 表中使用)
local my_ak47 = AK47(Vector(200, 0, 100), Rotator())

-- 将红点瞄具网格体作为附加静态网格体添加到 AK47 模型上的 sight_socket 骨骼。由于我们的 AK47 模型
-- 在合适的位置已经有一个名为 sight_socket 的骨骼,我们可以直接附加到该骨骼,否则我们需要
-- 将其附加位置设置为适合红点瞄具的位置,并保持骨骼名称为空 ""
my_ak47:AddStaticMeshAttached("sight", "nanos-world::SM_T4_Sight", "sight_socket")

-- 在开镜瞄准时使 FOV 乘数降低 0.35 倍
my_ak47:SetSightFOVMultiplier(0.35)

-- 设置开镜瞄准变换偏移以匹配红点中心位置,
-- 每种武器都需要不同的偏移量来匹配其瞄具。AK47 + 红点瞄具的最优偏移量为 Z = -15.9
my_ak47:SetSightTransform(Vector(0, 0, -15.9), Rotator(0, 0, 0))

一些可用作瞄准镜的静态网格体资产:​

  • nanos-world::SM_T4_Sight(红点)
  • nanos-world::SM_Scope_25x56(远程瞄准镜)

你可以按相同方式添加的其他武器配件(它们仅用于视觉效果):

  • nanos-world::SM_Vertgrip
  • nanos-world::SM_Suppressor