// 资源加载完成 private void FinishAndLoadNextAsset(IAssetHandler handler = null) { LinkedListNode <IAssetHandler> node; if (handler != null) { mCompleteLoaders++; node = mHandlers.First; while (node != null) { var tmp = node.Value; if (tmp.AssetId == handler.AssetId) { mHandlers.Remove(node); break; } node = node.Next; } } node = mHandlers.First; if (node != null) { node.Value.StartLoad(); } else { mCompleteLoaders = 0; mLoaders = 0; } }
private static void MakeSerializable(GameObject go, Table table, IAssetHandler assetHandler) { // add table component (plus other data) var component = go.AddComponent <VisualPinballTable>(); component.SetData(table.Data); foreach (var key in table.TableInfo.Keys) { component.tableInfo[key] = table.TableInfo[key]; } component.textureFolder = assetHandler.TextureFolder; component.textures = table.Textures.Values.Select(d => d.Data).ToArray(); component.customInfoTags = table.CustomInfoTags; component.collections = table.Collections.Values.Select(c => c.Data).ToArray(); component.decals = table.Decals.Select(d => d.Data).ToArray(); component.dispReels = table.DispReels.Values.Select(d => d.Data).ToArray(); component.flashers = table.Flashers.Values.Select(d => d.Data).ToArray(); component.lightSeqs = table.LightSeqs.Values.Select(d => d.Data).ToArray(); component.plungers = table.Plungers.Values.Select(d => d.Data).ToArray(); component.sounds = table.Sounds.Values.Select(d => d.Data).ToArray(); component.textBoxes = table.TextBoxes.Values.Select(d => d.Data).ToArray(); component.timers = table.Timers.Values.Select(d => d.Data).ToArray(); Logger.Info("Collections saved: [ {0} ] [ {1} ]", string.Join(", ", table.Collections.Keys), string.Join(", ", component.collections.Select(c => c.Name)) ); }
public WebsiteDependencies( IContentRepository contentRepository, IContextResolver contextResolver, ICacheManager cacheManager, IAssetHandler assetHandler, ISiteSettingsService siteSettingsPageRepository) { Guard.ValidateObject(cacheManager); Guard.ValidateObject(contentRepository); Guard.ValidateObject(contextResolver); Guard.ValidateObject(assetHandler); Guard.ValidateObject(siteSettingsPageRepository); CacheManager = cacheManager; ContentRepository = contentRepository; ContextResolver = contextResolver; AssetHandler = assetHandler; _siteSettingsPageRepository = siteSettingsPageRepository; }
public void SiteSettings_Should_Be_Correctly_Set( ICacheManager cacheManager, ICookieManager cookieManager, IAssetHandler assetHandler, int contentId) { mockSiteSettingsPageRepository.Setup(x => x.SiteSettingsPage) .Returns(mockSiteSettingPage.Object); _websiteDependencies = new WebsiteDependencies( mockContentRepository.Object, mockContextResolver.Object, cacheManager, assetHandler, mockSiteSettingsPageRepository.Object); _websiteDependencies.SiteSettings.Should().NotBeNull(); mockSiteSettingsPageRepository.Verify(x => x.SiteSettingsPage, Times.AtLeastOnce()); }
public void Import(string fileName, Table table, IAssetHandler assetHandler) { _table = table; _assetHandler = assetHandler; var go = gameObject; go.name = _table.Name; _patcher = new Patcher.Patcher.Patcher(_table, fileName); // generate meshes and save (pbr) materials var materials = new Dictionary <string, PbrMaterial>(); foreach (var r in _table.Renderables) { _renderObjects[r] = r.GetRenderObjects(_table, Origin.Original, false); foreach (var ro in _renderObjects[r].RenderObjects) { if (!materials.ContainsKey(ro.Material.Id)) { materials[ro.Material.Id] = ro.Material; } } } // import ImportTextures(); ImportMaterials(materials); ImportGameItems(); ImportGiLights(); // set root transformation go.transform.localRotation = GlobalRotation; go.transform.localPosition = new Vector3(-_table.Width / 2 * GlobalScale, 0f, _table.Height / 2 * GlobalScale); go.transform.localScale = new Vector3(GlobalScale, GlobalScale, GlobalScale); //ScaleNormalizer.Normalize(go, GlobalScale); MakeSerializable(go, table, assetHandler); // finally, add the player script go.AddComponent <TablePlayer>(); }
public TextureJob(IEnumerable <Texture> textures, IAssetHandler assetHandler) { _textures = new NativeArray <IntPtr>(textures.Select(MemHelper.ToIntPtr).ToArray(), Allocator.Persistent); _assetHandler = MemHelper.ToIntPtr(assetHandler); }
public TextureImporter(Texture[] textures, IAssetHandler assetHandler) { _textures = textures; _assetHandler = assetHandler; }
public static void RegisterAssetHandler <T>(IAssetHandler <T> handler) { _handlers[typeof(T)] = handler; }
public static UnityEngine.Material ToUnityMaterial(this PbrMaterial vpxMaterial, IAssetHandler assetHandler, StringBuilder debug = null) { var unityMaterial = new UnityEngine.Material(GetShader()) { name = vpxMaterial.Id }; // apply some basic manipulations to the color. this just makes very // very white colors be clipped to 0.8204 aka 204/255 is 0.8 // this is to give room to lighting values. so there is more modulation // of brighter colors when being lit without blow outs too soon. var col = vpxMaterial.Color.ToUnityColor(); if (vpxMaterial.Color.IsGray() && col.grayscale > 0.8) { debug?.AppendLine("Color manipulation performed, brightness reduced."); col.r = col.g = col.b = 0.8f; } unityMaterial.SetColor(Color, col); // validate IsMetal. if true, set the metallic value. // found VPX authors setting metallic as well as translucent at the // same time, which does not render correctly in unity so we have // to check if this value is true and also if opacity <= 1. if (vpxMaterial.IsMetal && (!vpxMaterial.IsOpacityActive || vpxMaterial.Opacity >= 1)) { unityMaterial.SetFloat(Metallic, 1f); debug?.AppendLine("Metallic set to 1."); } // roughness / glossiness unityMaterial.SetFloat(Glossiness, vpxMaterial.Roughness); // blend mode ApplyBlendMode(unityMaterial, vpxMaterial.MapBlendMode); if (vpxMaterial.MapBlendMode == BlendMode.Translucent) { col.a = Mathf.Min(1, Mathf.Max(0, vpxMaterial.Opacity)); unityMaterial.SetColor(Color, col); } // map if (vpxMaterial.HasMap) { unityMaterial.SetTexture( MainTex, assetHandler.LoadTexture(vpxMaterial.Map, false) ); } // normal map if (vpxMaterial.HasNormalMap) { unityMaterial.EnableKeyword("_NORMALMAP"); unityMaterial.SetTexture( BumpMap, assetHandler.LoadTexture(vpxMaterial.NormalMap, true) ); } return(unityMaterial); }
public AssetController(IAssetHandler assetHandler) { _assetHandler = assetHandler; }
public MaterialJob(IEnumerable <PbrMaterial> materials, IAssetHandler assetHandler) { _materials = new NativeArray <IntPtr>(materials.Select(MemHelper.ToIntPtr).ToArray(), Allocator.Persistent); }
public MaterialImporter(PbrMaterial[] materials, IAssetHandler assetHandler) { _materials = materials; _assetHandler = assetHandler; }