示例#1
0
        private void DrawDependencyListElement(Rect rect, int index, bool isActive, bool isFocused)
        {
            var list        = m_DependenciesList.serializedProperty;
            var dependency  = list.GetArrayElementAtIndex(index);
            var packageName = dependency.FindPropertyRelative("packageName");
            var version     = dependency.FindPropertyRelative("version");

            var w = rect.width;

            rect.x                 += 4;
            rect.width              = w / 3 * 2 - 2;
            rect.height            -= EditorGUIUtility.standardVerticalSpacing;
            packageName.stringValue = EditorGUI.DelayedTextField(rect, packageName.stringValue);

            if (!IsNullOrEmptyTrim(packageName.stringValue) && !PackageValidation.ValidateName(packageName.stringValue))
            {
                errorMessages.Add($"Invalid Dependency Package Name '{packageName.stringValue}'");
            }

            using (new EditorGUI.DisabledScope(IsNullOrEmptyTrim(packageName.stringValue)))
            {
                rect.x             += w / 3 * 2;
                rect.width          = w / 3 - 4;
                version.stringValue = EditorGUI.DelayedTextField(rect, version.stringValue);

                if (!IsNullOrEmptyTrim(version.stringValue) && !PackageValidation.ValidateVersion(version.stringValue))
                {
                    errorMessages.Add(
                        $"Invalid Dependency Version '{version.stringValue}' for '{packageName.stringValue}'");
                }
            }
        }
 internal static void ValidateVersion(string packageName, string version, List <string> errorMessages, List <string> warningMessages)
 {
     if (!PackageValidation.ValidateVersion(version, out var majorStr, out var minorStr, out var patchStr))
     {
         if (string.IsNullOrEmpty(packageName))
         {
             errorMessages.Add($"Invalid version '{version}'");
         }
         else
         {
             errorMessages.Add($"Invalid version '{version}' for dependency '{packageName}'");
         }
     }
示例#3
0
        private void PerformValidation()
        {
            if (!PackageValidation.ValidateOrganizationName(m_OrganizationName.stringValue) && !IsNullOrEmptyTrim(m_OrganizationName.stringValue))
            {
                errorMessages.Add($"Invalid Package Organization Name '{m_OrganizationName.stringValue}'");
            }

            if (!PackageValidation.ValidateName(m_Name.stringValue))
            {
                errorMessages.Add($"Invalid Package Name '{m_Name.stringValue}'");
            }

            if (!PackageValidation.ValidateVersion(m_Version.stringValue))
            {
                errorMessages.Add($"Invalid Version '{m_Version.stringValue}'");
            }

            if (m_UnityVersionEnabled.boolValue)
            {
                if (!PackageValidation.ValidateUnityVersion(m_UnityMajor.stringValue, m_UnityMinor.stringValue,
                                                            m_UnityRelease.stringValue))
                {
                    var unityVersion = string.Join(".", new[] { m_UnityMajor.stringValue, m_UnityMinor.stringValue });
                    if (!IsNullOrEmptyTrim(m_UnityRelease.stringValue))
                    {
                        unityVersion += "." + m_UnityRelease.stringValue.Trim();
                    }

                    errorMessages.Add($"Invalid Unity Version '{unityVersion}'");
                }
            }

            if (IsNullOrEmptyTrim(m_DisplayName.stringValue) || m_DisplayName.stringValue.Trim().Length == 0)
            {
                warningMessages.Add("Display name should be provided.");
            }

            if (IsNullOrEmptyTrim(m_Description.stringValue) || m_Description.stringValue.Trim().Length == 0)
            {
                warningMessages.Add("Package description should be provided.");
            }

            if ((PackageVisibility)m_Visibility.intValue == PackageVisibility.AlwaysHidden)
            {
                warningMessages.Add("This package and all its assets will be hidden by default in Editor because its visibility is set to 'Always Hidden'");
            }
            if ((PackageVisibility)m_Visibility.intValue == PackageVisibility.AlwaysVisible)
            {
                warningMessages.Add("This package and all its assets will be visible by default in Editor because its visibility is set to 'Always Visible'");
            }
            else
            {
                if (IsNullOrEmptyTrim(packageState.info.type))
                {
                    warningMessages.Add("This package and all its assets will be hidden by default in Editor because its type is empty");
                }
                else if (PackageInfo.GetPredefinedHiddenByDefaultPackageTypes().Contains(packageState.info.type))
                {
                    warningMessages.Add($"This package and all its assets will be hidden by default in Editor because its type is '{packageState.info.type}'");
                }
                else
                {
                    warningMessages.Add($"This package and all its assets will be visible by default in Editor because its type is '{packageState.info.type}'");
                }
            }
        }