public static AsyncOperationHandle <Sprite> LoadSpriteAsync(AssetReferenceSprite pAsset, Action <float> pProgress = null, Action <Sprite> pOnCompleted = null)
        {
            var operation = pAsset.LoadAssetAsync();

            WaitLoadTask(operation, pProgress, pOnCompleted);
            return(operation);
        }
示例#2
0
    private static void LoadFlagSprites(AssetReferenceSprite playerFlagReference, Component buttonParent, IReadOnlyList <GameObject> characters, IReadOnlyList <Sprite> characterIcons, Transform spawnLocation, Image characterPreviewImage,
                                        TextMeshProUGUI characterReadyText, int playerIndex)
    {
        void OnSpriteLoaded(AsyncOperationHandle <Sprite> asyncOperationHandle)
        {
            SetFlagBehavior(buttonParent, characters, characterIcons, spawnLocation, characterPreviewImage, characterReadyText, asyncOperationHandle.Result, playerIndex);
        }

        playerFlagReference.LoadAssetAsync().Completed += OnSpriteLoaded;
    }
        public void AssetReferenceEditorAssetForSubObject_Sprite()
        {
            var guid = AssetDatabase.AssetPathToGUID(m_TexturePath);
            AssetReferenceSprite atlasReference = new AssetReferenceSprite(guid);

            atlasReference.SubObjectName = "testTexture";

            //Test
            Assert.IsNotNull(atlasReference.editorAsset);
        }
示例#4
0
        public SerializedProperty SetupForSetSubAssetsList(SpriteAtlas spriteAtlas,
                                                           int numReferences,
                                                           int selectedElement,
                                                           int numElements    = 1,
                                                           bool setReferences = true,
                                                           int numToSet       = -1)
        {
            // Setup AssetReference selected
            m_AssetReferenceDrawer = new AssetReferenceDrawer();
            var assetPath            = AssetDatabase.GetAssetOrScenePath(spriteAtlas);
            var atlasGuid            = AssetDatabase.AssetPathToGUID(assetPath);
            AssetReferenceSprite sar = new AssetReferenceSprite(atlasGuid);

            // Default to preset all references
            if (setReferences && numToSet == -1)
            {
                numToSet = numReferences - 1;
            }

            // Select one element per reference array as a targetObject
            var targetObjects = new Object[numElements];

            for (int refIdx = 0; refIdx < numReferences; refIdx++)
            {
                var testScriptable = TestSubObjectsSpriteAtlasList.CreateInstance <TestSubObjectsSpriteAtlasList>();
                testScriptable.testSpriteReference = new AssetReferenceSprite[numElements];

                // Preset reference array elements for certain tests
                if (setReferences && refIdx <= numToSet)
                {
                    for (int i = 0; i < numElements; i++)
                    {
                        AssetReferenceSprite ar = new AssetReferenceSprite(atlasGuid);
                        testScriptable.testSpriteReference[i] = ar;
                        testScriptable.testSpriteReference[i].SubObjectName = "test";
                    }
                }

                var serialObj = new SerializedObject(testScriptable);
                var serProp   = serialObj.FindProperty("testSpriteReference.Array.data[" + selectedElement + "]");
                targetObjects[refIdx] = serProp.serializedObject.targetObject;
            }

            // Get main property to pass to AssetReferenceDrawer
            var property = SetupPropertyDrawerSetListTests(targetObjects, sar, selectedElement);

            return(property);
        }
示例#5
0
 /// <summary>
 /// Load Sprites Async by Unity Addressable System
 /// </summary>
 /// <param name="spriteReference"> target sprite reference </param>
 /// <param name="onComplete"> on completed callback </param>
 /// <param name="onFailed"> on error callback </param>
 public void LoadSprite(AssetReferenceSprite spriteReference, Action <Sprite> onComplete, Action <string> onFailed = null)
 {
     spriteReference.LoadAssetAsync()
     .Completed += response =>
     {
         if (response.Status == AsyncOperationStatus.Failed)
         {
             onFailed?.Invoke(response.PercentComplete.ToString());
         }
         else if (response.Status == AsyncOperationStatus.Succeeded)
         {
             onComplete?.Invoke(response.Result);
         }
         else
         {
             Debug.LogError("None Result > " + response.Result);
         }
     };
 }
        public static void Add(AssetReferenceSprite assetRef)
        {
            if (assetRef.RuntimeKeyIsValid())
            {
                if (assetRef.Asset == null && !AssetRefs.Contains(assetRef))
                {
                    AssetRefs.Enqueue(assetRef);

                    if (AssetRefs.Count == 1)
                    {
                        LoadNext();
                    }
                }
                else
                {
                    DispatchCompletedAllIfEmpty();
                }
            }
            else
            {
                DispatchCompletedAllIfEmpty();
            }
        }
示例#7
0
        public SerializedProperty SetupForSetSubAssets(SpriteAtlas spriteAtlas, int numReferences, bool setReferences = true, int numToSet = -1)
        {
            // Setup AssetReference selected
            m_AssetReferenceDrawer = new AssetReferenceDrawer();
            var assetPath           = AssetDatabase.GetAssetOrScenePath(spriteAtlas);
            var atlasGuid           = AssetDatabase.AssetPathToGUID(assetPath);
            AssetReferenceSprite ar = new AssetReferenceSprite(atlasGuid);

            // Setup property
            if (numToSet == -1)
            {
                numToSet = numReferences - 1;
            }
            var targetObjects = new Object[numReferences];

            for (int i = 0; i < numReferences; i++)
            {
                var testScriptable = TestSubObjectsSpriteAtlas.CreateInstance <TestSubObjectsSpriteAtlas>();

                // Preset references for certain tests
                if (setReferences && i <= numToSet)
                {
                    testScriptable.testSpriteReference = ar;
                }
                targetObjects[i] = testScriptable;
            }
            var so       = new SerializedObject(targetObjects);
            var property = so.FindProperty("testSpriteReference");

            m_AssetReferenceDrawer.GatherFilters(property);
            Directory.CreateDirectory("Assets/AddressableAssetsData");
            AddressableAssetSettingsDefaultObject.Settings = Settings;
            m_AssetReferenceDrawer.m_AssetRefObject        = ar;
            m_AssetReferenceDrawer.m_label = new GUIContent("testSpriteReference");
            return(property);
        }
 public void SetSpriteReference(AssetReferenceSprite sprite)
 {
     Traverse.Create(guiPresentation).Field("spriteReference").SetValue(sprite);
 }
 public GuiPresentationBuilder SetSpriteReference(AssetReferenceSprite sprite)
 {
     guiPresentation.SetSpriteReference(sprite);
     return(this);
 }
示例#10
0
 public EffectProxyDefinitionBuilder SetPortrait(AssetReferenceSprite portraitSpriteReference)
 {
     Definition.SetHasPortrait(true);
     Definition.SetPortraitSpriteReference(portraitSpriteReference);
     return(this);
 }
 public static T SetActiveSpriteReference <T>(this T entity, AssetReferenceSprite value)
     where T : LightSourceItemDescription
 {
     entity.SetField("activeSpriteReference", value);
     return(entity);
 }
示例#12
0
 public CharacterClassDefinitionBuilder SetPictogram(AssetReferenceSprite sprite)
 {
     Definition.SetClassPictogramReference(sprite);
     return(this);
 }
示例#13
0
        public async Task SetOptions(string action, Func <DropdownOption, Task> callback, AssetReferenceSprite iconRef)
        {
            this.callback   = callback;
            actionText.text = action;

            if (icon != null)
            {
                try
                {
                    if (iconRef != null && iconRef.RuntimeKeyIsValid())
                    {
                        var sprite = await iconRef.LoadOrGetAsync <Sprite>();

                        icon.sprite = sprite;
                    }
                    else
                    {
                        icon.gameObject.SetActive(false);
                    }
                }
                catch (Exception e)
                {
                    Debug.LogError($"cannot load icon: {iconRef?.SubObjectName}");
                    Debug.LogException(e);
                }
            }
        }
 public static T SetSmallSpriteReference <T>(this T entity, AssetReferenceSprite value)
     where T : FactionDefinition
 {
     entity.SetField("smallSpriteReference", value);
     return(entity);
 }
示例#15
0
 public void SetPictogram(AssetReferenceSprite sprite)
 {
     Traverse.Create(myClass).Field("classPictogramReference").SetValue(sprite);
 }
示例#16
0
 public static T SetSpriteReference <T>(this T entity, AssetReferenceSprite value)
     where T : ContentFragmentDescription
 {
     entity.SetField("spriteReference", value);
     return(entity);
 }
示例#17
0
 public static T SetClassPictogramReference <T>(this T entity, AssetReferenceSprite value)
     where T : CharacterClassDefinition
 {
     entity.SetField("classPictogramReference", value);
     return(entity);
 }
 public static T SetPortraitSpriteReference <T>(this T entity, AssetReferenceSprite value)
     where T : EffectProxyDefinition
 {
     entity.SetField("portraitSpriteReference", value);
     return(entity);
 }
 public static T SetBestiarySpriteReference <T>(this T entity, AssetReferenceSprite value)
     where T : MonsterDefinition
 {
     entity.SetField("bestiarySpriteReference", value);
     return(entity);
 }