예제 #1
0
    // 将AB加载到硬盘 将配置文件加载到内存
    public void InitAssetsBundle()
    {
        var path = "";
        var www  = WWW.LoadFromCacheOrDownload(path, VersionManager.Instance.GetLocalVersion(VersionType.Resource));

        m_wwws.Add(UNWWW.New(www));
    }
예제 #2
0
 public T CreateObject <T>()
     where T : UNObject, new()
 {
     if (m_objs.TryGetValue(typeof(T), out m_objGetList))
     {
         for (int i = 0; i < m_objGetList.Count; ++i)
         {
             if (m_objGetList[i].m_state == UNObjectStateType.Alive)
             {
                 continue;
             }
             m_objGetList[i].m_state = UNObjectStateType.Alive;
             return(m_objGetList[i] as T);
         }
         T obj = new T();
         obj.m_state = UNObjectStateType.Alive;
         m_objGetList.Add(obj);
         return(obj);
     }
     else
     {
         T obj = new T();
         obj.m_state = UNObjectStateType.Alive;
         var objList = new UNList <UNObject>();
         objList.Add(obj);
         m_objs.Add(typeof(T), objList);
         return(obj);
     }
 }
예제 #3
0
 public void AddBehaviorImmediate(UNBehaviorType bType,
                                  int priority = 0,
                                  UNBehaviorStateType bState = UNBehaviorStateType.Wait,
                                  UNBehaviorChangeStateCallBack cbBeforeChange = null,
                                  UNBehaviorChangeStateCallBack cbAfterChange  = null)
 {
     m_cbsBeforeBehaviorChange.Add(cbBeforeChange);
     m_cbsAfterBehaviorChange.Add(cbAfterChange);
     if (m_curBehavior.IsNull())
     {
         m_curBehavior = UNBehavior.New();
         m_curBehavior.ResetToBehavior(bType, priority, bState, m_cbsBeforeBehaviorChange, m_cbsAfterBehaviorChange);
     }
     else
     {
         m_curBehavior.ChangeToState(UNBehaviorStateType.Finish);
         m_curBehavior.ResetToBehavior(bType, priority, bState, m_cbsBeforeBehaviorChange, m_cbsAfterBehaviorChange);
     }
     m_curBehavior.ChangeToState(UNBehaviorStateType.Execute);
 }
예제 #4
0
    public void DispatchEvent(EventType type, object[] pars)
    {
        UNList <object[]> objs = null;

        if (!m_triggers.TryGetValue(type, out objs))
        {
            objs = UNList <object[]> .New();

            m_triggers.Add(type, objs);
        }
        objs.Add(pars);
    }
예제 #5
0
    public void AddEventListener(EventType type, EventCallBack cb)
    {
        UNList <EventCallBack> cbs = null;

        if (!m_listeners.TryGetValue(type, out cbs))
        {
            cbs = UNList <EventCallBack> .New();

            m_listeners.Add(type, cbs);
        }
        cbs.Add(cb);
    }
예제 #6
0
    public void AddBehaviorsTransRule(UNBehaviorType fromType, UNBehaviorType toType)
    {
        UNList <UNBehaviorType> fromList = null;

        if (m_behaviorsTransRules.ContainsKey(toType))
        {
            if (!m_behaviorsTransRules[toType].Contains(fromType))
            {
                fromList = m_behaviorsTransRules[toType];
            }
        }
        else
        {
            fromList = UNList <UNBehaviorType> .New();
        }
        if (fromList != null)
        {
            fromList.Add(fromType);
        }
        AddBehaviorsTransRule(fromList, toType);
    }
예제 #7
0
 public void AddWaitBehavior(UNBehavior behavior)
 {
     m_behaviorsWaitForExecute.Add(behavior);
 }