public ClientBuildingManagerModule()
    {
        Building[] SceneBuildings = GameObject.FindObjectsOfType <Building> ();
        for (int i = 0; i < SceneBuildings.Length; i++)
        {
            SceneBuildings [i].isMasterControl      = true;
            SceneBuildings [i].isMasterServerObject = false;

            BuildingList.Add(SceneBuildings [i].SerializedID, SceneBuildings [i]);
        }
        onServerBuildingDestroyed = HandleServerBuildingDestroyed;
    }
        public static Generic.Dictionary <Type, T> GetTypesWithAttribute <T>()
        {
            Debug.Log(" In ReflectionHelper.GetTypesWithAttribute");

            Generic.Dictionary <Type, T> all = new Generic.Dictionary <Type, T>();
            //var ass = GetAssemblyByName("Assembly-CSharp");

            var assemblies = AppDomain.CurrentDomain.GetAssemblies();

            Debug.Log($"Found {assemblies.Length} assemblies");

            foreach (var assembly in assemblies)
            {
                if (assembly.FullName.Contains("mscorlib") ||
                    assembly.FullName.Contains("UnityEngine") ||
                    assembly.FullName.Contains("UnityEditor") ||
                    assembly.FullName.Contains("System.") ||
                    assembly.FullName.Contains("System,") ||
                    assembly.FullName.Contains("Unity.") ||
                    assembly.FullName.Contains("Mono."))
                {
                    continue;
                }

                //Debug.Log($"Checking assembly {assembly.FullName}");
                foreach (Type type in assembly.GetTypes())
                {
                    object attribute = type.GetCustomAttribute(typeof(T), true);
                    if (attribute != null)
                    {
                        Debug.Log($"------------- Found Type {type.Name}");
                        all.Add(type, (T)attribute);
                        break;
                    }
                }
            }

            return(all);
        }
示例#3
0
 public void Put(DictName Name, String value)
 {
     D.Add(Name.Name, new DictName(value));
 }