Ejemplo n.º 1
0
 void optimizedReflect()
 {
     //UnityEngine.Debug.Log($"reflect {GetType()}");
     if (!TreeInfo.TryGetFieldInfo(GetType(), out var info))
     {
         throw new Exception($"type::{GetType()} info not found");
     }
     if (info.findedFields.Count > 0)
     {
         needFindInfo = new List <FieldInfo>();
         needFindInfo.AddRange(info.findedFields);
         //foreach (var item in needFindInfo)
         //{
         //    UnityEngine.Debug.Log($"find ::{item}");
         //}
     }
     foreach (var item in info.cmpFields)
     {
         injectCmp(item);
         //UnityEngine.Debug.Log($"cmpFields ::{item}");
     }
     foreach (var item in info.cmpArrayFields)
     {
         //UnityEngine.Debug.Log($"cmpArrayFields ::{item}");
         injectCmpArray(item);
     }
 }
Ejemplo n.º 2
0
 static MainThreadAnalize()
 {
     foreach (var kv in TreeInfo.GetItems())
     {
         var main = kv.Key.GetCustomAttribute <MainThreadAttribute>();
         if (main != null)
         {
             _isInMain.Add(kv.Key, main.update);
         }
         //else
         //{
         //    var info = kv.Value;
         //    if (ContainUnityObject(info.cmpFields)
         //     || ContainUnityObject(info.findedFields))
         //    {
         //        UnityEngine.Debug.Log(kv.Key);
         //        //_isInMain.Add(kv.Key, UpdateType.Update);
         //    }
         //}
     }
 }