private bool IgnoredPredicate(Transform t) { if (unignoredTransforms.Contains(t.name)) { return(false); } if (ignoredTransforms.Contains(t.name)) { return(true); } if (t.gameObject.layer != ignoreLayer0) { Transform prefabTransform = part.partInfo.partPrefab?.FindModelTransform(t.gameObject.name); if (prefabTransform is null || prefabTransform.gameObject.layer != ignoreLayer0) { return(false); } } FARLogger.DebugFormat("Ignoring {2} ({0}::{1}) for voxelization: layer is ignored", part.name, t.gameObject.name, t.name); return(true); }
public IEnumerator Load(IAssetRequest <Texture2D> assetRequest) { assetRequest.State = Progress.InProgress; if (loadedTextures.TryGetValue(assetRequest.Url, out Texture2D texture)) { FARLogger.DebugFormat("Using already loaded texture {0}", assetRequest.Url); assetRequest.State = Progress.Completed; assetRequest.OnLoad(texture); yield break; } string path = $@"file:///{PathUtil.Combine(PathUtil.ParentDir, assetRequest.Url)}"; FARLogger.DebugFormat("Loading texture from {0}", path); using UnityWebRequest request = UnityWebRequestTexture.GetTexture(path); yield return(request.SendWebRequest()); if (!string.IsNullOrEmpty(request.error)) { FARLogger.Error($"Error loading texture from {request.url}: {request.error}"); assetRequest.State = Progress.Error; assetRequest.OnError(); } else { FARLogger.DebugFormat("Texture loaded from from {0}", request.url); Texture2D content = DownloadHandlerTexture.GetContent(request); loadedTextures.Add(assetRequest.Url, content); assetRequest.State = Progress.Completed; assetRequest.OnLoad(content); } }
public IEnumerator Load(IAssetRequest <Shader> assetRequest) { assetRequest.State = Progress.InProgress; var shader = Shader.Find(assetRequest.Url); if (shader == null) { FARLogger.DebugFormat("Could not find shader {0}", assetRequest.Url); assetRequest.State = Progress.Error; assetRequest.OnError(); } else { FARLogger.DebugFormat("Found shader {0}", assetRequest.Url); assetRequest.State = Progress.Completed; assetRequest.OnLoad(shader); } yield break; }
public IEnumerator Load(IAssetRequest <ComputeShader> assetRequest) { assetRequest.State = Progress.InProgress; ComputeShader shader = UnityEngine.Resources.Load <ComputeShader>(assetRequest.Url); if (shader == null) { FARLogger.DebugFormat("Could not find compute shader {0}", assetRequest.Url); assetRequest.State = Progress.Error; assetRequest.OnError(); } else { FARLogger.DebugFormat("Found compute shader {0}", assetRequest.Url); assetRequest.State = Progress.Completed; assetRequest.OnLoad(shader); } yield break; }
public IEnumerator Load() { // wait for the other loading to be done if (State == Progress.InProgress) { yield return(new WaitWhile(() => State == Progress.InProgress)); yield break; } State = Progress.InProgress; // wait for config to be loaded fully while (FARConfig.IsLoading) { yield return(null); } NeedsReload = false; string path = Url; FARLogger.DebugFormat("Loading asset bundle from {0}", path); AssetBundleCreateRequest createRequest = AssetBundle.LoadFromFileAsync(path); yield return(createRequest); AssetBundle assetBundle = createRequest.assetBundle; if (assetBundle == null) { FARLogger.Error($"Could not load asset bundle from {path}"); State = Progress.Error; yield break; } AssetBundleRequest loadRequest = assetBundle.LoadAllAssetsAsync <T>(); yield return(loadRequest); LoadedAssets.Clear(); foreach (Object asset in loadRequest.allAssets) { if (!LoadedAssets.ContainsKey(asset.name)) { if (asset is T t) { LoadedAssets.Add(asset.name, t); } else { FARLogger .Warning($"Invalid asset type {asset.GetType().ToString()}, expected {typeof(T).ToString()}"); } } else { FARLogger.DebugFormat("Asset {0} is duplicated", asset); } } FARLogger.DebugFormat("Completed loading assets from {0}", path); State = Progress.Completed; }
/// <inheritdoc /> public void OnLoad(T resource) { FARLogger.DebugFormat("Loaded {0} from {1}", resource, Url); Asset = resource; AssetLoaded(); }