// Update is called once per frame new protected void FixedUpdate() { if (InputToken == null) { base.FixedUpdate(); return; } if (Disabled) { base.FixedUpdate(); HMomentum *= .8f; return; } InputSnapshot input = InputToken.GetSnapshot(); var data = SimulateFrame(input, cyoteTime); cyoteTime = data.cyoteTime; if (data.jumpConsumed) { InputToken.ConsumeJump(); } foreach (var tech in GetComponents <IPlatformingTechnique>()) { if (tech.Enabled) { data = tech.SimulateFrame(InputToken.GetSnapshot(), cyoteTime); if (data.jumpConsumed) { InputToken.ConsumeJump(); } cyoteTime = data.cyoteTime; } } }
void SaveSnapshot() { snapshothead++; snapshothead %= 60; history[snapshothead] = new PlatformingCharacterSnapshot() { input = InputToken.GetSnapshot(), momentum = new Vector2(HMomentum, VMomentum), cyoteTime = cyoteTime, position = transform.position, }; }