public bool Build()

in Editor/Scripts/DevDescriptor.cs [55:97]


        public bool Build()
        {
            try
            {
                IReadOnlyList<FileDescriptor> files;
                if (m_SerializedData != null)
                {
                    files = FileDescriptor.BuildFromByteStrings(new[] {m_SerializedData});
                }
                else if (m_SerializedBytes != null)
                {
                    var fileDescriptorSet = FileDescriptorSet.Parser.ParseFrom(m_SerializedBytes);
                    files = FileDescriptor.BuildFromByteStrings(fileDescriptorSet.File);
                }
                else
                {
                    throw new InvalidOperationException("DevDescriptor is not properly initialized.");
                }

                fileDescriptor = files[0];
                fidelityMessage = fileDescriptor.MessageTypes.First(x => x.Name == "FidelityParams");
                annotationMessage = fileDescriptor.MessageTypes.First(x => x.Name == "Annotation");
                var loadingField = annotationMessage.Fields
                    .InDeclarationOrder()
                    .FirstOrDefault(DefaultMessages.IsLoadingStateField);
                var sceneField = annotationMessage.Fields
                    .InDeclarationOrder()
                    .FirstOrDefault(DefaultMessages.IsSceneField);
                // As message field's indexes start from 1, return 0 if field is not found.
                loadingAnnotationIndex = loadingField?.FieldNumber ?? 0;
                sceneAnnotationIndex = sceneField?.FieldNumber ?? 0;
                annotationEnumSizes =
                    annotationMessage.Fields.InDeclarationOrder()
                        .Select(x => x.EnumType.Values.Count).ToList();
                fidelityFieldNames = fidelityMessage.Fields.InDeclarationOrder().Select(x => x.Name).ToList();
                return true;
            }
            catch (Exception e)
            {
                Debug.Log("Could not build DevDescriptor, " + e);
                return false;
            }
        }