/// <summary> /// Register a <see cref="Piece" /> prefab.<br /> /// The piece prefabs are added to the current <see cref="ZNetScene" /> on initialization.<br /> /// The <see cref="Piece" /> is added to the <see cref="PieceTable" /> defined in <see cref="PieceDef" /> /// automatically.<br /> /// When ExtensionStation is defined in <see cref="PieceDef" />, the <see cref="Piece" /> is added as a /// <see cref="StationExtension" /> to that station. /// </summary> /// <param name="prefab"></param> /// <param name="pieceDef"></param> public static void RegisterPiecePrefab(GameObject prefab, PieceDef pieceDef) { if (!Instance.RegisteredPrefabs.Contains(prefab)) { Instance.RegisteredPrefabs.Add(prefab); Instance.RegisteredPieces.Add(prefab, pieceDef); } }
/// <summary> /// Load a piece prefab from a bundle and register it in <see cref="AssetManager" />. /// </summary> /// <param name="assetBundle"></param> /// <param name="assetName"></param> /// <param name="pieceDef"></param> public static void LoadPiecePrefab(AssetBundle assetBundle, string assetName, PieceDef pieceDef) { var prefab = assetBundle.LoadAsset <GameObject>(assetName); AssetManager.RegisterPiecePrefab(prefab, pieceDef); }