private static bool CheckFogSettings() { EnvConfig.FogSettings fogSettings = EnvConfig.GetFogSettings(); if (fogSettings.fogStrippingMode == EnvConfig.FogSettings.FogStrippingMode.Automatic) { return(false); } return(fogSettings.keepLinear || fogSettings.keepExp || fogSettings.keepExp2); }
public override void OnGUIAvatar(VRC_AvatarDescriptor avatar) { EditorGUILayout.BeginVertical(VRCSdkControlPanel.boxGuiStyle); EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(GUILayout.Width(300)); EditorGUILayout.Space(); GUILayout.Label("Offline Testing", VRCSdkControlPanel.infoGuiStyle); GUILayout.Label( "Before uploading your avatar you may build and test it in the VRChat client. Other users will not able to see the test avatar.", VRCSdkControlPanel.infoGuiStyle); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(GUILayout.Width(200)); EditorGUILayout.Space(); GUI.enabled = (EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneWindows || EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneWindows64) && (_builder.NoGuiErrorsOrIssues() || Core.APIUser.CurrentUser.developerType == Core.APIUser.DeveloperType.Internal); if (GUILayout.Button("Build & Test")) { if (Core.APIUser.CurrentUser.canPublishAvatars) { VRC_SdkBuilder.ExportAndTestAvatarBlueprint(avatar.gameObject); EditorUtility.DisplayDialog("VRChat SDK", "Test Avatar Built", "OK"); } else { VRCSdkControlPanel.ShowContentPublishPermissionsDialog(); } } EditorGUILayout.EndVertical(); EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); EditorGUILayout.Separator(); EditorGUILayout.BeginVertical(VRCSdkControlPanel.boxGuiStyle); EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(GUILayout.Width(300)); EditorGUILayout.Space(); GUILayout.Label("Online Publishing", VRCSdkControlPanel.infoGuiStyle); GUILayout.Label( "In order for other people to see your avatar in VRChat it must be built and published to our game servers.", VRCSdkControlPanel.infoGuiStyle); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(GUILayout.Width(200)); EditorGUILayout.Space(); GUI.enabled = _builder.NoGuiErrorsOrIssues() || Core.APIUser.CurrentUser.developerType == Core.APIUser.DeveloperType.Internal; if (GUILayout.Button(VRCSdkControlPanel.GetBuildAndPublishButtonString())) { bool buildBlocked = !VRCBuildPipelineCallbacks.OnVRCSDKBuildRequested(VRCSDKRequestedBuildType.Avatar); if (!buildBlocked) { if (Core.APIUser.CurrentUser.canPublishAvatars) { EnvConfig.FogSettings originalFogSettings = EnvConfig.GetFogSettings(); EnvConfig.SetFogSettings( new EnvConfig.FogSettings(EnvConfig.FogSettings.FogStrippingMode.Custom, true, true, true)); #if UNITY_ANDROID EditorPrefs.SetBool("VRC.SDKBase_StripAllShaders", true); #else EditorPrefs.SetBool("VRC.SDKBase_StripAllShaders", false); #endif VRC_SdkBuilder.shouldBuildUnityPackage = VRCSdkControlPanel.FutureProofPublishEnabled; VRC_SdkBuilder.ExportAndUploadAvatarBlueprint(avatar.gameObject); EnvConfig.SetFogSettings(originalFogSettings); // this seems to workaround a Unity bug that is clearing the formatting of two levels of Layout // when we call the upload functions return; } else { VRCSdkControlPanel.ShowContentPublishPermissionsDialog(); } } } EditorGUILayout.EndVertical(); EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); GUI.enabled = true; }