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