CustomAssets
Askowl Custom Assets
Manager.cs
1 // Copyright 2018,19 (C) paul@marrington.net http://www.askowl.net/unity-packages
2 using Askowl;
3 using UnityEditor;
4 using UnityEngine;
5 
6 namespace CustomAsset {
7  /// <a href=""></a> //#TBD#//
8  public class Manager : Base {
9  [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
10  private static void InitialiseCustomAssetsFiber() =>
11  // Permanently running fiber that waits until an asset requires initialising before looping back on itself.
12  Fiber.Start.OnFixedUpdates.Begin.Do(
13  _ => {
14  while (!AssetsWaitingInitialisation.Empty) AssetsWaitingInitialisation.Pop().Initialiser();
15  }, "CustomAsset Initialiser").WaitFor(InitialiseAssetEmitter).Again.Finish();
16  }
17 }
static readonly Emitter InitialiseAssetEmitter
triggered by scene load in Manager
Definition: Base.cs:35
static readonly Fifo< Base > AssetsWaitingInitialisation
initialisation for all assets loaded before the related/first scene
Definition: Base.cs:38
//#TBD#//
Definition: Manager.cs:8
Base class for all custom assets - implementing initialisation
Definition: Base.cs:8