예제 #1
0
    private static void OnCharacterReady(string characterName, GameObject go)
    {
        CharacterLoadingInfo loadingInfo = _loads.Find(delegate(CharacterLoadingInfo info) { return(info._name.Equals(characterName)); });

        if (loadingInfo != null)
        {
            //EB.Debug.Log ("CHARACTER {0} IS READY...RETURNING {1}", characterName, go);
            loadingInfo.OnLoaded(go);
        }

        _loads.Remove(loadingInfo);
    }
예제 #2
0
    public static void CharacterObject(string characterName, System.Action <GameObject, object> OnReady, object clientReadyData)
    {
        GameObject character;

        if (_characterRegistry.TryGetValue(characterName, out character))
        {
            // An entry exists - do we need to load the character?
            if (character == null)
            {
                //EB.Debug.Log ("REQUESTING {0} BUT IS NULL...LOADING", characterName);
                // Are we already loading it?
                CharacterLoadingInfo loadingInfo = _loads.Find(delegate(CharacterLoadingInfo info) { return(info._name.Equals(characterName)); });

                if (loadingInfo == null)
                {
                    //EB.Debug.Log("NOT ALREADY LOADING {0}....REALLY LOADING", characterName);
                    _loads.Add(new CharacterLoadingInfo(characterName, OnReady, clientReadyData));

                    /* troyhack
                     * EB.Assets.LoadAsync(_characterRoot+characterName, typeof(GameObject), delegate(Object o) {
                     *      // do my stuff
                     *      GameObject go = o as GameObject;
                     *
                     *      _characterRegistry[characterName] = go;
                     *      // Let client(s) know
                     *      //EB.Debug.Log("LOADED {0} FROM BUNDLE : o {1}, go {2}", characterName, o, go);
                     *
                     *      OnCharacterReady(characterName, go);
                     * }, false);
                     */
                }
                else
                {
                    //EB.Debug.Log("{0} IS ALREADY LOADING FROM BUNDLE...", characterName);
                    loadingInfo.AddCB(OnReady, clientReadyData);
                }
            }
            else
            {
                //EB.Debug.Log ("{0} IS ALREADY LOADED...RETURNING {1}", characterName, character);
                // Call the client's callback right now
                OnReady(character, clientReadyData);
            }
        }
        else
        {
            EB.Debug.LogError("CHARACTERDB - no such character {0} exists", characterName);
        }
    }