public override void OnInspectorGUI() { if (_info == null) { _info = (CVRAssetInfo)target; } EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_HEADER_INFORMATION"), MessageType.Info); if (!string.IsNullOrEmpty(_info.guid)) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_GUID_LABEL") + _info.guid, MessageType.Info); if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON"))) { bool detach = EditorUtility.DisplayDialog( CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON_DIALOG_TITLE"), CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON_DIALOG_BODY"), CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON_DIALOG_ACCEPT"), CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON_DIALOG_DENY")); if (detach) { DetachGuid(); } } } else { _newGuid = EditorGUILayout.TextField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_ATTACH_LABEL"), _newGuid); EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_ATTACH_INFO"), MessageType.Warning); if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_ATTACH_BUTTON"))) { ReattachGuid(_newGuid); } } }
void OnGUI() { var centeredStyle = GUI.skin.GetStyle("Label"); centeredStyle.alignment = TextAnchor.UpperCenter; GUILayout.Label(abiLogo, centeredStyle); EditorGUILayout.BeginVertical(); _tab = GUILayout.Toolbar(_tab, new string[] { CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_HEADING_BUILDER"), CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_HEADING_SETTINGS") }); _scroll = EditorGUILayout.BeginScrollView(_scroll); switch (_tab) { case 0: if (!_loggedIn) { Tab_LogIn(); } else { Tab_LoggedIn(); } break; case 1: Tab_Settings(); break; } EditorGUILayout.EndScrollView(); EditorGUILayout.EndVertical(); }
public void Start() { var tmpText = gameObject.GetComponent <TMP_Text>(); if (tmpText != null) { tmpText.text = CCKLocalizationProvider.GetLocalizedText(identifier); } var text = gameObject.GetComponent <Text>(); if (text != null) { text.text = CCKLocalizationProvider.GetLocalizedText(identifier); } }
private void Tab_LogIn() { EditorGUILayout.LabelField("ABI Community Hub Access", EditorStyles.boldLabel); EditorGUILayout.LabelField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_INFOTEXT_SIGNIN1")); EditorGUILayout.LabelField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_INFOTEXT_SIGNIN2")); EditorGUILayout.LabelField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_INFOTEXT_SIGNIN3")); EditorGUILayout.Space(); _username = EditorGUILayout.TextField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_LOGIN_TEXT_USERNAME"), _username); _key = EditorGUILayout.PasswordField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_LOGIN_TEXT_ACCESSKEY"), _key); if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_LOGIN_BUTTON"))) { Login(); } if (_hasAttemptedToLogin && !_loggedIn) { GUILayout.Label(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_LOGIN_CREDENTIALS_INCORRECT")); } }
private List <String> getAllAssetMeshesInAvatar(GameObject avatar) { var assetPathList = new List <String>(); foreach (var sMeshRenderer in avatar.GetComponentsInChildren <SkinnedMeshRenderer>(true)) { if (sMeshRenderer == null) { continue; } var currentMesh = sMeshRenderer.sharedMesh; if (currentMesh == null) { Debug.LogWarning(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_WARNING_MESH_FILTER_MESH_EMPTY") + $": {sMeshRenderer.transform.name}"); continue; } if (!AssetDatabase.Contains(currentMesh)) { continue; } string meshAssetPath = AssetDatabase.GetAssetPath(currentMesh); if (string.IsNullOrEmpty(meshAssetPath)) { continue; } if (assetPathList.Contains(meshAssetPath)) { continue; } assetPathList.Add(meshAssetPath); } foreach (var meshFilter in avatar.GetComponentsInChildren <MeshFilter>(true)) { if (meshFilter == null) { continue; } var currentMesh = meshFilter.sharedMesh; if (currentMesh == null) { Debug.LogWarning(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_WARNING_MESH_FILTER_MESH_EMPTY") + $": {meshFilter.transform.name}"); continue; } if (!AssetDatabase.Contains(currentMesh)) { continue; } string meshAssetPath = AssetDatabase.GetAssetPath(currentMesh); if (string.IsNullOrEmpty(meshAssetPath)) { continue; } if (assetPathList.Contains(meshAssetPath)) { continue; } assetPathList.Add(meshAssetPath); } foreach (var pRenderer in avatar.GetComponentsInChildren <ParticleSystemRenderer>(true)) { if (pRenderer == null) { continue; } var particleMeshes = new Mesh[pRenderer.meshCount]; pRenderer.GetMeshes(particleMeshes); foreach (var particleMesh in particleMeshes) { if (particleMesh == null) { Debug.LogWarning(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_WARNING_MESH_FILTER_MESH_EMPTY") + $": {pRenderer.transform.name}"); continue; } if (!AssetDatabase.Contains(particleMesh)) { continue; } string meshAssetPath = AssetDatabase.GetAssetPath(particleMesh); if (string.IsNullOrEmpty(meshAssetPath)) { continue; } if (assetPathList.Contains(meshAssetPath)) { continue; } assetPathList.Add(meshAssetPath); } } return(assetPathList); }
void OnGUISpawnable(CVRSpawnable s) { GameObject spawnableObject = s.gameObject; GUI.enabled = true; EditorGUILayout.InspectorTitlebar(spawnableObject.activeInHierarchy, spawnableObject); int errors = 0; int overallPolygonsCount = 0; int overallSkinnedMeshRenderer = 0; int overallUniqueMaterials = 0; int overallMissingScripts = 0; foreach (MeshFilter filter in s.gameObject.GetComponentsInChildren <MeshFilter>()) { if (filter.sharedMesh != null) { overallPolygonsCount = overallPolygonsCount + filter.sharedMesh.triangles.Length / 3; } } foreach (SkinnedMeshRenderer renderer in s.gameObject.GetComponentsInChildren <SkinnedMeshRenderer>()) { overallSkinnedMeshRenderer++; if (renderer.sharedMaterials != null) { overallUniqueMaterials = overallUniqueMaterials + renderer.sharedMaterials.Length; } } overallMissingScripts = CCK_Tools.CleanMissingScripts(CCK_Tools.SearchType.Selection, false, spawnableObject); if (overallMissingScripts > 0) { errors++; } //Errors if (overallMissingScripts > 0) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_PROPS_ERROR_MISSING_SCRIPT"), MessageType.Error); } //Warnings if (overallPolygonsCount > 100000) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_PROPS_WARNING_POLYGONS").Replace("{X}", overallPolygonsCount.ToString()), MessageType.Warning); } if (overallSkinnedMeshRenderer > 10) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_PROPS_WARNING_SKINNED_MESH_RENDERERS").Replace("{X}", overallSkinnedMeshRenderer.ToString()), MessageType.Warning); } if (overallUniqueMaterials > 20) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_PROPS_WARNING_MATERIALS").Replace("{X}", overallUniqueMaterials.ToString()), MessageType.Warning); } var spawnableMeshes = getAllAssetMeshesInAvatar(spawnableObject); if (CheckForLegacyBlendShapeNormals(spawnableMeshes)) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_PROPS_WARNING_LEGACY_BLENDSHAPES"), MessageType.Warning); if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_FIX_IMPORT_SETTINGS"))) { FixLegacyBlendShapeNormals(spawnableMeshes); } } //Info if (overallPolygonsCount >= 50000 && overallPolygonsCount <= 100000) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_PROPS_INFO_POLYGONS").Replace("{X}", overallPolygonsCount.ToString()), MessageType.Info); } if (overallSkinnedMeshRenderer >= 5 && overallSkinnedMeshRenderer <= 10) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_PROPS_INFO_SKINNED_MESH_RENDERERS").Replace("{X}", overallSkinnedMeshRenderer.ToString()), MessageType.Info); } if (overallUniqueMaterials >= 10 && overallUniqueMaterials <= 20) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_PROPS_INFO_MATERIALS").Replace("{X}", overallUniqueMaterials.ToString()), MessageType.Info); } if (errors <= 0 && overallMissingScripts <= 0) { if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_PROPS_UPLOAD_BUTTON"))) { CCK_BuildUtility.BuildAndUploadSpawnable(spawnableObject); } } if (overallMissingScripts > 0) { if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_UTIL_REMOVE_MISSING_SCRIPTS_BUTTON"))) { CCK_Tools.CleanMissingScripts(CCK_Tools.SearchType.Selection, true, spawnableObject); } } }
void OnGUIAvatar(CVRAvatar avatar) { GameObject avatarObject = avatar.gameObject; GUI.enabled = true; EditorGUILayout.InspectorTitlebar(avatarObject.activeInHierarchy, avatarObject); int errors = 0; int overallPolygonsCount = 0; int overallSkinnedMeshRenderer = 0; int overallUniqueMaterials = 0; int overallMissingScripts = 0; foreach (MeshFilter filter in avatar.gameObject.GetComponentsInChildren <MeshFilter>()) { if (filter.sharedMesh != null) { overallPolygonsCount = overallPolygonsCount + filter.sharedMesh.triangles.Length / 3; } } foreach (SkinnedMeshRenderer renderer in avatar.gameObject.GetComponentsInChildren <SkinnedMeshRenderer>()) { overallSkinnedMeshRenderer++; if (renderer.sharedMaterials != null) { overallUniqueMaterials = overallUniqueMaterials + renderer.sharedMaterials.Length; } } overallMissingScripts = CCK_Tools.CleanMissingScripts(CCK_Tools.SearchType.Selection, false, avatarObject); if (overallMissingScripts > 0) { errors++; } //Errors if (overallMissingScripts > 0) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_ERROR_AVATAR_MISSING_SCRIPTS"), MessageType.Error); } var animator = avatar.GetComponent <Animator>(); if (animator == null) { errors++; EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_ERROR_ANIMATOR"), MessageType.Error); } if (animator != null && animator.avatar == null) { //errors++; EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_WARNING_GENERIC"), MessageType.Warning); } //Warnings if (overallPolygonsCount > 100000) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_WARNING_POLYGONS").Replace("{X}", overallPolygonsCount.ToString()), MessageType.Warning); } if (overallSkinnedMeshRenderer > 10) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_WARNING_SKINNED_MESH_RENDERERS").Replace("{X}", overallSkinnedMeshRenderer.ToString()), MessageType.Warning); } if (overallUniqueMaterials > 20) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_WARNING_MATERIALS").Replace("{X}", overallUniqueMaterials.ToString()), MessageType.Warning); } if (avatar.viewPosition == Vector3.zero) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_WARNING_VIEWPOINT"), MessageType.Warning); } if (animator != null && animator.avatar != null && !animator.avatar.isHuman) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_WARNING_NON_HUMANOID"), MessageType.Warning); } var avatarMeshes = getAllAssetMeshesInAvatar(avatarObject); if (CheckForLegacyBlendShapeNormals(avatarMeshes)) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_WARNING_LEGACY_BLENDSHAPES"), MessageType.Warning); if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_FIX_IMPORT_SETTINGS"))) { FixLegacyBlendShapeNormals(avatarMeshes); } } //Info if (overallPolygonsCount >= 50000 && overallPolygonsCount <= 100000) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_INFO_POLYGONS").Replace("{X}", overallPolygonsCount.ToString()), MessageType.Info); } if (overallSkinnedMeshRenderer >= 5 && overallSkinnedMeshRenderer <= 10) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_INFO_SKINNED_MESH_RENDERERS").Replace("{X}", overallSkinnedMeshRenderer.ToString()), MessageType.Info); } if (overallUniqueMaterials >= 10 && overallUniqueMaterials <= 20) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_INFO_MATERIALS").Replace("{X}", overallUniqueMaterials.ToString()), MessageType.Info); } if (avatar.viewPosition.y <= 0.5f) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_INFO_SMALL"), MessageType.Info); } if (avatar.viewPosition.y > 3f) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_INFO_HUGE"), MessageType.Info); } if (errors <= 0) { if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_AVATAR_UPLOAD_BUTTON"))) { CCK_BuildUtility.BuildAndUploadAvatar(avatarObject); } } if (overallMissingScripts > 0) { if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_UTIL_REMOVE_MISSING_SCRIPTS_BUTTON"))) { CCK_Tools.CleanMissingScripts(CCK_Tools.SearchType.Selection, true, avatarObject); } } }
void Tab_Settings() { EditorGUILayout.LabelField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_SETTINGS_HEADER"), EditorStyles.boldLabel); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_SETTINGS_CONTENT_ENCRYPTION")); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); var ssl = EditorGUILayout.Popup(EditorPrefs.GetBool("m_ABI_SSL", true) ? 1 : 0, new [] { "http", "https" }) == 1; EditorPrefs.SetBool("m_ABI_SSL", ssl); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_SETTINGS_HINT_CONTENT_ENCRYPTION"), MessageType.Info); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_SETTINGS_CONTENT_REGION")); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); var region = EditorGUILayout.Popup(EditorPrefs.GetString("m_ABI_HOST", "EU") == "EU" ? 0 : 1, new [] { "Europe", "USA" }) == 0 ? "EU" : "US"; EditorPrefs.SetString("m_ABI_HOST", region); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_SETTINGS_HINT_CONTENT_REGION"), MessageType.Info); EditorGUILayout.Space(); //Language Select EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_SETTINGS_CCK_LANGUAGE")); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); string selectedLanguage = EditorPrefs.GetString("ABI_CCKLocals", "English"); int selectedIndex = CCKLocalizationProvider.GetKnownLanguages().FindIndex(match => match == selectedLanguage); if (selectedIndex < 0) { selectedIndex = 0; } selectedIndex = EditorGUILayout.Popup(selectedIndex, CCKLocalizationProvider.GetKnownLanguages().ToArray()); EditorPrefs.SetString("ABI_CCKLocals", CCKLocalizationProvider.GetKnownLanguages()[selectedIndex]); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_SETTINGS_HINT_CCK_LANGUAGE"), MessageType.Info); EditorGUILayout.Space(); }
private void Tab_LoggedIn() { EditorGUILayout.LabelField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_HEADING_ACCOUNT_INFO"), EditorStyles.boldLabel); EditorGUILayout.Space(); EditorGUILayout.LabelField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_INFOTEXT_AUTHENTICATED_AS"), _username); EditorGUILayout.LabelField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_INFOTEXT_USER_RANK"), _apiUserRank); EditorGUILayout.LabelField("CCK version ", CCKVersion); EditorGUILayout.Space(); if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_LOGOUT_BUTTON"))) { bool logout = EditorUtility.DisplayDialog( CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_LOGOUT_DIALOG_TITLE"), CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_LOGOUT_DIALOG_BODY"), CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_LOGOUT_DIALOG_ACCEPT"), CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_LOGOUT_DIALOG_DECLINE")); if (logout) { Logout(); } } EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_INFOTEXT_DOCUMENTATION"), MessageType.Info); if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_HEADING_DOCUMENTATION"))) { Application.OpenURL("https://docs.abinteractive.net"); } EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_WARNING_FEEDBACK"), MessageType.Info); if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_HEADING_FEEDBACK"))) { Application.OpenURL("https://hub.abinteractive.net/feedback"); } EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_WARNING_FOLDERPATH"), MessageType.Warning); EditorGUILayout.Space(); EditorGUILayout.LabelField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_HEADING_FOUNDCONTENT"), EditorStyles.boldLabel); List <CVRAvatar> avatars = new List <CVRAvatar>(); List <CVRSpawnable> spawnables = new List <CVRSpawnable>(); List <CVRWorld> worlds = new List <CVRWorld>(); foreach (CVRWorld w in Resources.FindObjectsOfTypeAll <CVRWorld>()) { if (w.gameObject.activeInHierarchy) { worlds.Add(w); } } foreach (CVRSpawnable s in Resources.FindObjectsOfTypeAll <CVRSpawnable>()) { if (s.gameObject.activeInHierarchy) { spawnables.Add(s); } } foreach (CVRAvatar a in Resources.FindObjectsOfTypeAll <CVRAvatar>()) { if (a.gameObject.activeInHierarchy) { avatars.Add(a); } } if (worlds.Count <= 0 && avatars.Count > 0 && (Application.unityVersion == supportedUnity || Application.unityVersion == supportedUnityLts)) { if (avatars.Count <= 0) { EditorGUILayout.LabelField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_UPLOADER_NO_AVATARS_FOUND")); } else { if (avatars.Count > 0) { var counter = 0; scrollPos = EditorGUILayout.BeginScrollView(scrollPos); foreach (CVRAvatar a in avatars) { counter++; EditorGUI.BeginChangeCheck(); EditorGUILayout.Space(); GUILayout.Label("Avatar Object #" + counter); OnGUIAvatar(a); } EditorGUILayout.EndScrollView(); } } } if (worlds.Count <= 0 && spawnables.Count > 0 && (Application.unityVersion == supportedUnity || Application.unityVersion == supportedUnityLts)) { if (spawnables.Count <= 0) { EditorGUILayout.LabelField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_UPLOADER_NO_SPAWNABLES_FOUND")); } else { if (spawnables.Count > 0) { var counter = 0; scrollPos = EditorGUILayout.BeginScrollView(scrollPos); foreach (CVRSpawnable s in spawnables) { counter++; EditorGUI.BeginChangeCheck(); EditorGUILayout.Space(); GUILayout.Label("Spawnable Object #" + counter); OnGUISpawnable(s); } EditorGUILayout.EndScrollView(); } } } if (avatars.Count <= 0 && worlds.Count == 1 && (Application.unityVersion == supportedUnity || Application.unityVersion == supportedUnityLts)) { int errors = 0; int overallMissingScripts = 0; overallMissingScripts = CCK_Tools.CleanMissingScripts(CCK_Tools.SearchType.Scene, false, null); if (overallMissingScripts > 0) { errors++; } EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_INFOTEXT_WORLDS_NO_AVATARS"), MessageType.Info); //Error if (overallMissingScripts > 0) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_ERROR_WORLD_MISSING_SCRIPTS"), MessageType.Error); } //Warning if (worlds[0].spawns.Length == 0) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_WORLDS_WARNING_SPAWNPOINT"), MessageType.Warning); } //Info if (worlds[0].referenceCamera == null) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_WORLDS_INFO_REFERENCE_CAMERA"), MessageType.Info); } if (worlds[0].respawnHeightY <= -500) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_WORLDS_INFO_RESPAWN_HEIGHT"), MessageType.Info); } if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_UPLOAD_WORLD_BUTTON")) && errors <= 0) { CCK_BuildUtility.BuildAndUploadMapAsset(EditorSceneManager.GetActiveScene(), worlds[0].gameObject); } if (overallMissingScripts > 0) { if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_UTIL_REMOVE_MISSING_SCRIPTS_BUTTON"))) { CCK_Tools.CleanMissingScripts(CCK_Tools.SearchType.Scene, true, null); } } } if (avatars.Count <= 0 && worlds.Count > 1 && (Application.unityVersion == supportedUnity || Application.unityVersion == supportedUnityLts)) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_WORLDS_ERROR_MULTIPLE_CVR_WORLD"), MessageType.Error); } if (avatars.Count > 0 && worlds.Count > 0 && (Application.unityVersion == supportedUnity || Application.unityVersion == supportedUnityLts)) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_WORLDS_ERROR_WORLD_CONTAINS_AVATAR"), MessageType.Error); } if (avatars.Count <= 0 && worlds.Count <= 0 && (Application.unityVersion == supportedUnity || Application.unityVersion == supportedUnityLts)) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_WORLDS_ERROR_NO_CONTENT"), MessageType.Info); } if ((Application.unityVersion != supportedUnity && Application.unityVersion != supportedUnityLts)) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_BUILDPANEL_WORLDS_ERROR_UNITY_UNSUPPORTED"), MessageType.Error); } }
public override void OnInspectorGUI() { trigger = (CVRAdvancedAvatarSettingsTrigger)target; var avatar = trigger.GetComponentInParent <CVRAvatar>(); animator = null; animatorParameters = new List <string>(); animatorParameters.Add("-none-"); if (avatar != null && avatar.overrides != null && avatar.overrides.runtimeAnimatorController != null) { animator = (AnimatorController)avatar.overrides.runtimeAnimatorController; foreach (var parameter in animator.parameters) { if (parameter.type == AnimatorControllerParameterType.Float && parameter.name.Length > 0 && !CCK_CVRAvatarEditor.coreParameters.Contains(parameter.name) && parameter.name.Substring(0, 1) != "#") { animatorParameters.Add(parameter.name); } } } var triggers = trigger.GetComponents <CVRAdvancedAvatarSettingsTrigger>(); if (triggers.Length > 1) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ADVAVTR_TRIGGER_MULTIPLE_TRIGGER_HELPBOX"), MessageType.Error); } trigger.areaSize = EditorGUILayout.Vector3Field("Area Size", trigger.areaSize); trigger.areaOffset = EditorGUILayout.Vector3Field("Area Offset", trigger.areaOffset); if (!trigger.useAdvancedTrigger) { if (animator == null) { trigger.settingName = EditorGUILayout.TextField("Setting Name", trigger.settingName); } else { var animatorParams = animatorParameters.ToArray(); var index = animatorParameters.FindIndex(match => match == trigger.settingName); index = Mathf.Max(EditorGUILayout.Popup("Setting Name", index, animatorParams), 0); trigger.settingName = animatorParams[index]; } trigger.settingValue = EditorGUILayout.FloatField("Setting Value", trigger.settingValue); trigger.useAdvancedTrigger = EditorGUILayout.Toggle("Enabled Advanced Mode", trigger.useAdvancedTrigger); } else { trigger.useAdvancedTrigger = EditorGUILayout.Toggle("Enabled Advanced Mode", trigger.useAdvancedTrigger); var list = serializedObject.FindProperty("allowedPointer"); EditorGUILayout.PropertyField(list, new GUIContent("Allowed Pointers"), true); serializedObject.ApplyModifiedProperties(); EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ADVAVTR_TRIGGER_ALLOWED_POINTERS_HELPBOX"), MessageType.Info); trigger.isNetworkInteractable = EditorGUILayout.Toggle("Network Interactable", trigger.isNetworkInteractable); if (_onEnterList == null) { _onEnterList = new ReorderableList(trigger.enterTasks, typeof(CVRAdvancedAvatarSettingsTriggerTask), false, true, true, true); _onEnterList.drawHeaderCallback = OnDrawHeaderEnter; _onEnterList.drawElementCallback = OnDrawElementEnter; _onEnterList.elementHeightCallback = OnHeightElementEnter; _onEnterList.onAddCallback = OnAddEnter; _onEnterList.onChangedCallback = OnChangedEnter; } _onEnterList.DoLayoutList(); if (_onExitList == null) { _onExitList = new ReorderableList(trigger.exitTasks, typeof(CVRAdvancedAvatarSettingsTriggerTask), false, true, true, true); _onExitList.drawHeaderCallback = OnDrawHeaderExit; _onExitList.drawElementCallback = OnDrawElementExit; _onExitList.elementHeightCallback = OnHeightElementExit; _onExitList.onAddCallback = OnAddExit; _onExitList.onChangedCallback = OnChangedExit; } _onExitList.DoLayoutList(); } }