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); }
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); } }