本帖最后由 许你春秋 于 2023-7-20 10:47 编辑
Your browser does not support video tags.
食材准备----
方块 *1 :关闭碰撞,换上水面材质,制作出海面
车轮 *1 :关闭显示,当做船力的支撑点
高级载具 *1 : 制作动力部分
船模型 *1 :制作外观
料理过程----
1.将高载具放置在水面下方 ,将船身模型和轮车模型挂到高级载具对象子级,调整船身在水面的位置
2.调整四个车轮的位置,
,我把四个车轮的位置放在偏向船身内部,这么做可以在前后移动和转弯时,借助船车模型的自身的质量和质心,使船有一点点倾斜,看起来更加像是在水面移动。
3.简单写一个载具的控制脚本
@Core .Class
export default class NewScript extends Core .Script {
/** 当脚本被实例后,会在第一帧更新前调用此函数 */
protected async onStart (): Promise <void > {
let player = await Gameplay .asyncGetCurrentPlayer (); //找到角色
let VehicleOSK = await Core .GameObject .asyncFind ("1F673F5E" ) as Gameplay .AdvancedVehicle ; //找到载具
//通过按钮1,绑定载具的控制权
InputUtil .onKeyDown (Type .Keys .One ,()=> {
VehicleOSK .setDriver (player );
});
//通过按钮Up ,控制载具前近
InputUtil .onKeyDown (Type .Keys .Up ,()=> {
VehicleOSK .setThrottleInput (1 );
});
InputUtil .onKeyUp (Type .Keys .Up ,()=> {
VehicleOSK .setThrottleInput (0 );
});
//通过按钮Down ,控制载具后退
InputUtil .onKeyDown (Type .Keys .Down ,()=> {
VehicleOSK .setThrottleInput (-1 );
});
InputUtil .onKeyUp (Type .Keys .Down ,()=> {
VehicleOSK .setThrottleInput (0 );
});
//通过按钮left ,控制载具左转
InputUtil .onKeyDown (Type .Keys .Left ,()=> {
VehicleOSK .setSteeringInput (- 1 );
});
InputUtil .onKeyUp (Type .Keys .Left ,()=> {
VehicleOSK .setSteeringInput (0 );
});
//通过按钮Right ,控制载具左转
InputUtil .onKeyDown (Type .Keys .Right ,()=> {
VehicleOSK .setSteeringInput (1 );
});
InputUtil .onKeyUp (Type .Keys .Right ,()=> {
VehicleOSK .setSteeringInput (0 );
});
}
}