跳至正文
版本:最新版 - a1.169.2 ⚖️

怪兽卡车

如何使用载具系统创建怪兽卡车。

Server/Index.lua
-- 生成皮卡
local vehicle = VehicleWheeled(
Vector(0, 0, 100), -- 位置
Rotator(), -- 旋转
"nanos-world::SK_Pickup", -- 资产
CollisionType.Normal, -- 碰撞类型
true, -- 启用重力
false, -- 自动翻正
"nanos-world::A_Vehicle_Engine_10", -- 引擎声音
"nanos-world::A_Vehicle_Horn_Toyota", -- 喇叭声音
"nanos-world::A_Vehicle_Brake", -- 制动声音
"nanos-world::A_Car_Engine_Start", -- 引擎启动声音
"nanos-world::A_Vehicle_Door", -- 车门声音
true, -- 自动启动引擎
"", -- 自定义动画蓝图
SpawnMode.AfterConstructor -- 生成模式:等待 FinishSpawn() 调用后再发送给客户端
)

-- 配置引擎最大扭矩、方向盘位置以及前大灯位置
vehicle:SetEngineSetup(4500)
vehicle:SetSteeringWheelSetup(Vector(0, 27, 120), 24)
vehicle:SetHeadlightsSetup(Vector(250, 0, 70))

-- 添加 4 个附加到各网格体车轮骨骼上的静态网格体车轮(这些车轮没有碰撞,仅用于视觉效果)
vehicle:AddStaticMeshAttached("wheel_rear_left", "nanos-world::SM_Tire_01", "Wheel_Rear_Left", Vector(0, -35, 0), Rotator(0, -90, 0))
vehicle:AddStaticMeshAttached("wheel_rear_right", "nanos-world::SM_Tire_01", "Wheel_Rear_Right", Vector(0, 45, 0), Rotator(0, -90, 0))
vehicle:AddStaticMeshAttached("wheel_front_left", "nanos-world::SM_Tire_01", "Wheel_Front_Left", Vector(0, -35, 0), Rotator(0, 90, 0))
vehicle:AddStaticMeshAttached("wheel_front_right", "nanos-world::SM_Tire_01", "Wheel_Front_Right", Vector(0, 45, 0), Rotator(0, 90, 0))

-- 配置各个物理车轮。请注意,由于我们的车轮静态网格体高度为 160,宽度为 60,因此我们将车轮配置为半径 80,宽度 60。此外,由于 SK_Pickup 的骨骼未完全对齐,左侧车轮必须稍微进行侧向偏移
vehicle:SetWheel(0, "Wheel_Front_Left", 80, 60, 30, Vector(0, -80, 0))
vehicle:SetWheel(1, "Wheel_Front_Right", 80, 60, 30, Vector(0, 90, 0))
vehicle:SetWheel(2, "Wheel_Rear_Left", 80, 60, 0, Vector(0, -80, 0))
vehicle:SetWheel(3, "Wheel_Rear_Right", 80, 60, 0, Vector(0, 90, 0))

-- 只添加驾驶员(座椅 0)和乘客(座椅 1)的车门/座椅
-- 参数:座椅索引、车门触发器位置、座椅位置、座椅旋转、触发器半径、离开时的侧向偏移
vehicle:SetDoor(0, Vector(50, -75, 105), Vector( 8, -32.5, 95), Rotator(0, 0, 10), 70, -150)
vehicle:SetDoor(1, Vector(50, 75, 105), Vector(25, 50, 90), Rotator(0, 0, 0), 70, 150)

-- 我们延迟了生成,因此现在完成生成:所有配置完成后,客户端只会构建一次车辆(及其物理特性)
vehicle:FinishSpawn()