FishParkoutSystem.ts enum EFishState { None, Swim, //正常游泳期 Jump, //跳跃动画期 QTEJump, //QTE跳跃 QTEFail, //QTE失败 InAir, //滑行期 AirToSwim, //窗口期 Hit, //受击动画到入水期 } onCreateNodeData onCreateNodeData是在PostCreateGameDataByFlowNodeSAction这个action执行时调用的函数,也就是当注册FishParkourData之前调用这个函数,在这个函数中绑定了蓝图中的委托(OnBeginOverlap、OnInputJumpStart、OnFallingInWater)并且更新了UI,调用了一个setParkourSplinePointInfo( params.splineSpawnerId, selfActor.ParkourMovement);函数,设置组件的setActive(true),其中params是通过如下得到。
let params = findObjectParam( action.params, SettingFishParkourNodeCreateParam ); //Define.ts export class SettingFishParkourNodeCreateParam extends SettingNodeParam { public splineSpawnerId: string = ""; } 这个函数在Util.ts工具类中,存入样条线全部的点。
export function setParkourSplinePointInfo(spawnerId: string, parkourMovementComponent: UE.ParkourMovementComponent) { let splinePoints = findSplinePointsBySpawnerId(spawnerId); // 返回splinePoints数组 F.assert(splinePoints); let pointTransforms = UE.NewArray(UE.Transform); for (let info of splinePoints) { // 从该数组拿到每个点 let transform = new UE.