public void DeathByInstaKill(CharacterControl attacker) { control.animationProgress.CurrentRunningAbilities.Clear(); attacker.animationProgress.CurrentRunningAbilities.Clear(); control.RIGID_BODY.useGravity = false; control.boxCollider.enabled = false; control.SkinnedMeshAnimator.runtimeAnimatorController = Assassination_B; attacker.RIGID_BODY.useGravity = false; attacker.boxCollider.enabled = false; attacker.SkinnedMeshAnimator.runtimeAnimatorController = Assassination_A; Vector3 dir = control.transform.position - attacker.transform.position; if (dir.z < 0f) { attacker.FaceForward(false); } else if (dir.z > 0f) { attacker.FaceForward(true); } control.transform.LookAt(control.transform.position + (attacker.transform.forward * 5f), Vector3.up); control.transform.position = attacker.transform.position + (attacker.transform.forward * 0.45f); hp = 0f; }
private void UpdateMomentum(CharacterControl control, AnimatorStateInfo stateInfo) { if (!control.animationProgress.RightSideIsBlocked()) { if (control.MoveRight) { control.animationProgress.AirMomentum += SpeedGraph.Evaluate(stateInfo.normalizedTime) * Speed * Time.deltaTime; } } if (!control.animationProgress.LeftSideIsBlocked()) { if (control.MoveLeft) { control.animationProgress.AirMomentum -= SpeedGraph.Evaluate(stateInfo.normalizedTime) * Speed * Time.deltaTime; } } if (control.animationProgress.RightSideIsBlocked() || control.animationProgress.LeftSideIsBlocked()) { control.animationProgress.AirMomentum = Mathf.Lerp(control.animationProgress.AirMomentum, 0f, Time.deltaTime * 1.5f); } if (Mathf.Abs(control.animationProgress.AirMomentum) >= MaxMomentum) { if (control.animationProgress.AirMomentum > 0f) { control.animationProgress.AirMomentum = MaxMomentum; } else if (control.animationProgress.AirMomentum < 0f) { control.animationProgress.AirMomentum = -MaxMomentum; } } if (control.animationProgress.AirMomentum > 0f) { control.FaceForward(true); } else if (control.animationProgress.AirMomentum < 0f) { control.FaceForward(false); } if (!IsBlocked(control, Speed, stateInfo)) { control.MoveForward(Speed, Mathf.Abs(control.animationProgress.AirMomentum)); } }