Example #1
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Player")
     {
         myAnimation.Pause();
         myMeshRenderer.enabled = false;
         OnGetItem?.Invoke(gameObject.transform.position);
     }
 }
    protected Coroutine StartLoadCoroutine <T>(OnGetItem <T> evtKey, IEnumerator iter) where T : UnityEngine.Object
    {
        if (evtKey == null || iter == null)
        {
            return(null);
        }

        Delegate key = evtKey as Delegate;

        if (key == null)
        {
            return(null);
        }

        return(StartLoadCoroutine(key, iter));
    }
    protected IEnumerator LoadAsync <T>(int start, int end, OnGetItem <T> onGetItem, Func <T, string, bool> onLoad, float delayTime = 0) where T : UnityEngine.Object
    {
        if (start < 0 || end < 0 || end < start || onGetItem == null || onLoad == null)
        {
            yield break;
        }

        bool           isDelayMode = delayTime > float.Epsilon;
        WaitForSeconds seconds     = null;

        if (isDelayMode)
        {
            seconds = new WaitForSeconds(delayTime);
        }

        Delegate key = onGetItem as Delegate;

        for (int i = start; i <= end; ++i)
        {
            T      target;
            string fileName;
            if (!onGetItem(i, out target, out fileName))
            {
                StopLoadCoroutine(key);
                yield break;
            }
            if (target != null && !string.IsNullOrEmpty(fileName))
            {
                onLoad(target, fileName);
            }

            if (seconds != null)
            {
                yield return(seconds);
            }
            else
            {
                yield return(m_EndOfFrame);
            }
        }

        StopLoadCoroutine(key);
    }
Example #4
0
    protected IEnumerator LoadAsync <T>(int start, int end, OnGetItem <T> onGetItem, Func <T, string, bool> onLoad) where T : UnityEngine.Object
    {
        if (start < 0 || end < 0 || end > start || onGetItem == null || onLoad == null)
        {
            yield break;
        }

        for (int i = start; i < end; ++i)
        {
            T      target;
            string fileName;
            if (!onGetItem(i, out target, out fileName))
            {
                yield break;
            }
            if (target != null && !string.IsNullOrEmpty(fileName))
            {
                onLoad(target, fileName);
            }

            yield return(target);
        }
    }
 public void LoadAniControllerAsync(int start, int end, OnGetItem <Animator> onGetItem, float delayTime = 0)
 {
     StartLoadCoroutine(onGetItem, LoadAsync <Animator>(start, end, onGetItem, LoadAniController, delayTime));
 }
 public void LoadFontAsync(int start, int end, OnGetItem <TextMesh> onGetItem, float delayTime = 0)
 {
     StartLoadCoroutine(onGetItem, LoadAsync <TextMesh>(start, end, onGetItem, LoadFont, delayTime));
 }
 public void LoadMainTextureAsync(int start, int end, OnGetItem <MeshRenderer> onGetItem, float delayTime = 0)
 {
     StartLoadCoroutine(onGetItem, LoadAsync <MeshRenderer>(start, end, onGetItem, LoadMainTexture, delayTime));
 }
 public void LoadMaterialAsync(int start, int end, OnGetItem <SpriteRenderer> onGetItem, float delayTime = 0)
 {
     StartLoadCoroutine(onGetItem, LoadAsync <SpriteRenderer>(start, end, onGetItem, LoadMaterial, delayTime));
 }
Example #9
0
 public void LoadMainTextureAsync(int start, int end, OnGetItem <UI2DSprite> onGetItem)
 {
     StartCoroutine(LoadAsync <UI2DSprite>(start, end, onGetItem, LoadMainTexture));
 }
Example #10
0
 public void LoadMainTextureAsync(int start, int end, OnGetItem <UI2DSprite> onGetItem, float delayTime = 0)
 {
     StartLoadCoroutine(onGetItem, LoadAsync <UI2DSprite>(start, end, onGetItem, LoadMainTexture, delayTime));
 }
Example #11
0
 public void LoadFontAsync(int start, int end, OnGetItem <TextMesh> onGetItem)
 {
     StartCoroutine(LoadAsync <TextMesh>(start, end, onGetItem, LoadFont));
 }
Example #12
0
 public void LoadMainTextureAsync(int start, int end, OnGetItem <MeshRenderer> onGetItem)
 {
     StartCoroutine(LoadAsync <MeshRenderer>(start, end, onGetItem, LoadMainTexture));
 }
Example #13
0
 public void LoadMaterialAsync(int start, int end, OnGetItem <SpriteRenderer> onGetItem)
 {
     StartCoroutine(LoadAsync <SpriteRenderer>(start, end, onGetItem, LoadMaterial));
 }
Example #14
0
 public void LoadAltasAsync(int start, int end, OnGetItem <UISprite> onGetItem)
 {
     StartCoroutine(LoadAsync <UISprite>(start, end, onGetItem, LoadAltas));
 }
Example #15
0
 public void LoadMaterialAsync(int start, int end, OnGetItem <UI2DSprite> onGetItem)
 {
     StartCoroutine(LoadAsync <UI2DSprite>(start, end, onGetItem, LoadMaterial));
 }
Example #16
0
 public void LoadAniControllerAsync(int start, int end, OnGetItem <Animator> onGetItem)
 {
     StartCoroutine(LoadAsync <Animator>(start, end, onGetItem, LoadAniController));
 }
Example #17
0
 public void LoadMaterialAsync(int start, int end, OnGetItem <UITexture> onGetItem, float delayTime = 0)
 {
     StartLoadCoroutine(onGetItem, LoadAsync <UITexture>(start, end, onGetItem, LoadMaterial, delayTime));
 }
Example #18
0
 public void GetItem(ActivateableItems newItem)
  {
      OnGetItem?.Invoke(newItem);
  }
Example #19
0
 public void LoadAltasAsync(int start, int end, OnGetItem <UISprite> onGetItem, float delayTime = 0)
 {
     StartLoadCoroutine(onGetItem, LoadAsync <UISprite>(start, end, onGetItem, LoadAltas, delayTime));
 }
Example #20
0
 public void LoadShaderAsync(int start, int end, OnGetItem <UITexture> onGetItem)
 {
     StartCoroutine(LoadAsync <UITexture>(start, end, onGetItem, LoadShader));
 }