public static INFTAsset CreateAsset(ITexture asset, NFTShapeConfig shapeConfig, Action <Texture2D> textureUpdateCallback, GifPlayer gifPlayer) { if (asset == null) { return(null); } if (asset is Asset_Gif gif) { return(new NFTGifAsset(gif, shapeConfig.hqGifResolution, gifPlayer)); } return(new NFTImageAsset(asset, shapeConfig.hqImgResolution, textureUpdateCallback)); }
protected void SetUp() { isHQAsset = false; camera = new GameObject("Camera") { tag = "MainCamera" }.AddComponent <Camera>(); asset = Substitute.For <INFTAsset>(); asset.When(a => a.RestorePreviewAsset()) .Do(i => { isHQAsset = false; asset.isHQ.Returns(false); }); asset.WhenForAnyArgs(a => a.FetchAndSetHQAsset(null, null, null)) .Do(i => { isHQAsset = true; asset.isHQ.Returns(true); }); nftGO = new GameObject(); var nftController = NFTShapeFactory.InstantiateLoaderController(0).GetComponent <NFTShapeLoaderController>(); nftController.transform.SetParent(nftGO.transform); nftController.transform.ResetLocalTRS(); nftGO.transform.position = new Vector3(10, 0, 10); nftShapeConfig = nftController.config; var config = new NFTShapeHQImageConfig() { asset = asset, controller = nftController, nftConfig = nftShapeConfig }; imageHandler = NFTShapeHQImageHandler.Create(config); }