/* * Any function named 'OnTeleport' present on a character's root object will be called after they are teleported. */ private void OnTeleport() { Vector3 movePosition = player.GetTargetPosition(); Quaternion rot = player.GetTargetRotation(); Vector3 angles = rot.eulerAngles; angles.x = GetTiltAngle(); Teleport(movePosition, angles); }
private void OverrideMovement() { // Calculate AC's intended player position Vector3 movePosition = (player.GetTargetPosition() - transform.position).normalized * Time.deltaTime; movePosition *= (player.isRunning) ? runSpeed : walkSpeed; movePosition += transform.position; // Calculate AC's intended player rotation Quaternion rot = Quaternion.RotateTowards(transform.rotation, player.GetTargetRotation(), turnSpeed * Time.deltaTime); Vector3 angles = rot.eulerAngles; angles.x = GetTiltAngle(); Teleport(movePosition, angles); }