protected override void Awake() { base.Awake(); this.AssertRequiredObjects(loggerText); providersManager = Engine.GetService <ResourceProviderManager>(); loggerText.text = string.Empty; }
protected override void Awake() { base.Awake(); this.AssertRequiredObjects(grid, viewerPanel, viewerImage); unlockableManager = Engine.GetService <UnlockableManager>(); providerManager = Engine.GetService <ResourceProviderManager>(); localizationManager = Engine.GetService <LocalizationManager>(); inputManager = Engine.GetService <InputManager>(); }
/// <inheritdoc /> public override async Task <object> Load(string id) { if (_assetBundle != null) { return(await _assetBundle.LoadAssetAsync(id)); } await ReadAssetBundle(); if (_assetBundle != null) { return(await _assetBundle.LoadAssetAsync(id)); } Debug.LogError($"Unable to load {id}: cannot load asset bundle {_fileName} (resource provider will be unregistered)"); ResourceProviderManager.Unregister(this); return(null); }
/// <summary> /// 扫描程序集并注册组件 /// </summary> /// <param name="assembly">目标程序集</param> public static void Load(Assembly assembly) { if (LoadedAssemblies.Contains(assembly.FullName)) { return; } LoadedAssemblies.Add(assembly.FullName); foreach (var item in assembly.GetTypes().Where(e => e.IsClass && !e.IsAbstract && e.GetCustomAttribute <SkipAutoRegistrationAttribute>() == null)) { try { var(isPlugin, isProvider) = Verify(item); if (isPlugin) { PluginManager.Register((VisualNovelPlugin)Activator.CreateInstance(item)); if (Application.isEditor) { Debug.Log($"Auto register: add {item.FullName} as visual novel plugin"); } } if (isProvider) { ResourceProviderManager.Register((ResourceProvider)Activator.CreateInstance(item)); if (Application.isEditor) { Debug.Log($"Auto register: add {item.FullName} as resource provider"); } } } catch (MissingMemberException) { if (Application.isEditor) { Debug.LogWarning($"Auto register: {item.FullName} register failed, manual registration required"); } } catch (Exception ex) { Debug.LogError($"Auto register: {item.FullName} register failed with \"{ex}\""); } } }
/// <summary> /// Initializes the resource provider application. /// </summary> /// <param name="httpConfiguration">The default HttpConfiguration object for this application.</param> /// <param name="serviceConfiguration">The service configuration object containing resource provider settings.</param> /// <param name="eventSource">The event source used for logging resource provider operations.</param> public static void Initialize( HttpConfiguration httpConfiguration, ResourceProviderServiceConfiguration serviceConfiguration, ICommonEventSource eventSource) { ArgumentValidator.ValidateNotNull("httpConfiguration", httpConfiguration); ArgumentValidator.ValidateNotNull("serviceConfiguration", serviceConfiguration); ArgumentValidator.ValidateNotNull("eventSource", eventSource); httpConfiguration.Filters.Add(new ResourceProviderExceptionFilterAttribute(eventSource)); // Ensure use of the JsonMediaTypeFormatter provided by the RP SDK, which guarantees the correct // JSON serialization settings for ARM interoperability. httpConfiguration.Formatters.Clear(); httpConfiguration.Formatters.Add(JsonExtensions.JsonMediaTypeFormatter); var manifest = ManifestFactory.CreateResourceProviderManifest(serviceConfiguration); ResourceProviderManager.RegisterCredentialAuthorization( httpConfiguration: httpConfiguration, eventSource: eventSource, manifestEndpointCredential: serviceConfiguration.Manifest.ManifestEndpointCredential, providerManifests: new ResourceProviderManifest[] { manifest }); ResourceProviderManager.RegisterEventsController( httpConfiguration: httpConfiguration, providerManifest: manifest, eventSource: eventSource, eventsConnectionString: serviceConfiguration.EventsConnectionString.ConnectionString, eventSchemaName: serviceConfiguration.EventsSchemaName); // TODO: Enable Azure Gallery item controller, when publishing a gallery item. //ResourceProviderManager.RegisterGalleryController( // httpConfiguration: httpConfiguration, // providerManifest: manifest, // galleryItemsResources: null); ResourceProviderManager.RegisterProviderManifestController( httpConfiguration: httpConfiguration, manifestEndpointUri: serviceConfiguration.BaseEndpoint.AbsoluteUri, eventSource: eventSource, providerManifest: manifest); // Create the resource provider storage. var resourceProviderStorage = new DefaultResourceProviderStorage( connectionStrings: new string[] { serviceConfiguration.StorageConnectionString }, eventSource: eventSource); // Create and initialize the handler configurations for each registered resource type. var resourceHandlers = new ResourceTypeHandlerConfiguration[] { ResourceTypeHandlerConfiguration.CreateResourceGroupWideResourceTypeHandlerConfiguration( resourceTypeName: new ResourceTypeName(ManifestFactory.Namespace, ManifestFactory.RootResourceTypeName), apiVersions: new string[] { serviceConfiguration.ApiVersion }, resourceProviderStorage: resourceProviderStorage, eventSource: eventSource, managedResourceTypeRequestHandler: new RootResourceTypeRequestHandler(resourceProviderStorage)), ResourceTypeHandlerConfiguration.CreateResourceGroupWideResourceTypeHandlerConfiguration( resourceTypeName: new ResourceTypeName(ManifestFactory.Namespace, ManifestFactory.RootResourceTypeName, ManifestFactory.NestedResourceTypeName), apiVersions: new string[] { serviceConfiguration.ApiVersion }, resourceProviderStorage: resourceProviderStorage, eventSource: eventSource, managedResourceTypeRequestHandler: new NestedResourceTypeRequestHandler(resourceProviderStorage)) }; ResourceProviderManager.RegisterResourceProvider( httpConfiguration: httpConfiguration, eventSource: eventSource, providerStorage: resourceProviderStorage, providerNamespace: manifest.Namespace, resourceTypeHandlerConfigurationCollection: resourceHandlers); ResourceProviderManager.RegisterUsageController( httpConfiguration: httpConfiguration, providerManifest: manifest, handler: null, eventSource: eventSource, usageConnectionString: serviceConfiguration.UsageConnectionString.ConnectionString, usageSchemaName: serviceConfiguration.UsageSchemaName); }