public void ResizeAvatar(SpawnedAvatar avatar) { if (!avatar.customAvatar.descriptor.allowHeightCalibration) { return; } // compute scale float scale; AvatarResizeMode resizeMode = SettingsManager.settings.resizeMode; switch (resizeMode) { case AvatarResizeMode.ArmSpan: float playerArmLength = SettingsManager.settings.playerArmSpan; var avatarArmLength = avatar.customAvatar.GetArmSpan(); scale = playerArmLength / avatarArmLength; break; case AvatarResizeMode.Height: scale = BeatSaberUtil.GetPlayerEyeHeight() / avatar.customAvatar.eyeHeight; break; default: scale = 1.0f; break; } // apply scale avatar.behaviour.scale = scale; SharedCoroutineStarter.instance.StartCoroutine(FloorMendingWithDelay(avatar)); }
private void ResizeCurrentAvatar() { if (!currentlySpawnedAvatar || !currentlySpawnedAvatar.avatar.descriptor.allowHeightCalibration) { return; } float scale; AvatarResizeMode resizeMode = _settings.resizeMode; switch (resizeMode) { case AvatarResizeMode.ArmSpan: float avatarArmLength = currentlySpawnedAvatar.avatar.armSpan; if (avatarArmLength > 0) { scale = _settings.playerArmSpan / avatarArmLength; } else { scale = 1.0f; } break; case AvatarResizeMode.Height: float avatarEyeHeight = currentlySpawnedAvatar.avatar.eyeHeight; float playerEyeHeight = _beatSaberUtilities.GetRoomAdjustedPlayerEyeHeight(); if (avatarEyeHeight > 0) { scale = playerEyeHeight / avatarEyeHeight; } else { scale = 1.0f; } break; default: scale = 1.0f; break; } if (scale <= 0) { _logger.Warning("Calculated scale is <= 0; reverting to 1"); scale = 1.0f; } currentlySpawnedAvatar.scale = scale; UpdateFloorOffsetForCurrentAvatar(); avatarScaleChanged?.Invoke(scale); }
public void ResizeAvatar(SpawnedAvatar avatar) { if (!avatar.customAvatar.descriptor.allowHeightCalibration || !avatar.customAvatar.isIKAvatar) { return; } // compute scale float scale; AvatarResizeMode resizeMode = SettingsManager.settings.resizeMode; switch (resizeMode) { case AvatarResizeMode.ArmSpan: float avatarArmLength = avatar.customAvatar.GetArmSpan(); if (avatarArmLength > 0) { scale = SettingsManager.settings.playerArmSpan / avatarArmLength; } else { scale = 1.0f; } break; case AvatarResizeMode.Height: float avatarEyeHeight = avatar.customAvatar.eyeHeight; if (avatarEyeHeight > 0) { scale = BeatSaberUtil.GetPlayerEyeHeight() / avatarEyeHeight; } else { scale = 1.0f; } break; default: scale = 1.0f; break; } if (scale <= 0) { Plugin.logger.Warn("Calculated scale is <= 0; reverting to 1"); scale = 1.0f; } // apply scale avatar.tracking.scale = scale; SharedCoroutineStarter.instance.StartCoroutine(FloorMendingWithDelay(avatar)); }
public void ResizeAvatar(SpawnedAvatar spawnedAvatar) { if (!spawnedAvatar.avatar.descriptor.allowHeightCalibration || !spawnedAvatar.avatar.isIKAvatar) { return; } // compute scale float scale; AvatarResizeMode resizeMode = _settings.resizeMode; switch (resizeMode) { case AvatarResizeMode.ArmSpan: float avatarArmLength = spawnedAvatar.avatar.armSpan; if (avatarArmLength > 0) { scale = _settings.playerArmSpan / avatarArmLength; } else { scale = 1.0f; } break; case AvatarResizeMode.Height: float avatarEyeHeight = spawnedAvatar.avatar.eyeHeight; if (avatarEyeHeight > 0) { scale = _playerEyeHeight / avatarEyeHeight; } else { scale = 1.0f; } break; default: scale = 1.0f; break; } if (scale <= 0) { _logger.Warning("Calculated scale is <= 0; reverting to 1"); scale = 1.0f; } // apply scale spawnedAvatar.scale = scale; SharedCoroutineStarter.instance.StartCoroutine(FloorMendingWithDelay(spawnedAvatar)); }
protected override void DidActivate(bool firstActivation, ActivationType type) { visibleInFirstPerson = SettingsManager.settings.isAvatarVisibleInFirstPerson; resizeMode = SettingsManager.settings.resizeMode; floorHeightAdjust = SettingsManager.settings.enableFloorAdjust; calibrateFullBodyTrackingOnStart = SettingsManager.settings.calibrateFullBodyTrackingOnStart; base.DidActivate(firstActivation, type); armSpanLabel.SetText($"{SettingsManager.settings.playerArmSpan:0.00} m"); }
private void OnResizeModeChanged(AvatarResizeMode value) { _settings.resizeMode = value; _avatarManager.ResizeCurrentAvatar(); }
private void OnSettingsResizeModeChanged(AvatarResizeMode resizeMode) { _heightAdjustWarningText.gameObject.SetActive(resizeMode != AvatarResizeMode.None && _playerDataModel.playerData.playerSpecificSettings.automaticPlayerHeight); }
private void OnResizeModeChanged(AvatarResizeMode value) { SettingsManager.settings.resizeMode = value; AvatarManager.instance.ResizeCurrentAvatar(); }
private void OnResizeModeChanged(AvatarResizeMode resizeMode) { ResizeCurrentAvatar(); }
private void OnResizeModeChanged(AvatarResizeMode value) { _settings.resizeMode.value = value; }