using UnityEngine; namespace XGame.Framework.Asset { internal static class AssetCreator { internal static Asset Create(string addressableName, object obj) { if (obj == null) { AssetsLog.Warn($"Asset create error: object is null. Path:{addressableName}"); return null; } Asset asset; if (obj is AssetBundle) { asset = new BundleAsset(); } else if (obj is Object) { asset = new ObjectAsset(); Monitor.AssetsMonitor.RecordAsset(addressableName, obj); } else { asset = new BinaryAsset(); } asset.Init(addressableName); asset.Source = obj; return asset; } } }