Просмотр исходного кода

Component<World>子类如果实现IAssemblyLoader接口话,World.Load()会统一调用该接口

tanghai 11 лет назад
Родитель
Сommit
24f4cd99f6
2 измененных файлов с 6 добавлено и 13 удалено
  1. 1 2
      CSharp/Game/Model/World.cs
  2. 5 11
      CSharp/Game/MongoDBTest/MongoDBTest.cs

+ 1 - 2
CSharp/Game/Model/World.cs

@@ -20,10 +20,9 @@ namespace Model
 
         private World()
         {
-            this.Assembly = Assembly.Load(File.ReadAllBytes(@"./Controller.dll"));
         }
 
-        public void ReLoad()
+        public void Load()
         {
             this.Assembly = Assembly.Load(File.ReadAllBytes(@"./Controller.dll"));
 

+ 5 - 11
CSharp/Game/MongoDBTest/MongoDBTest.cs

@@ -23,18 +23,12 @@ namespace MongoDBTest
             World world = World.Instance;
 
             // 加载配置
-            world.AddComponent<ConfigComponent>().Load(world.Assembly);
-
-            // 事件管理器
-            world.AddComponent<EventComponent<WorldEventAttribute>>().Load(world.Assembly);
-
+            world.AddComponent<ConfigComponent>();
+            world.AddComponent<EventComponent<WorldEventAttribute>>();
             world.AddComponent<UnitComponent>();
-
-            // 构造工厂
-            world.AddComponent<FactoryComponent<Unit>>().Load(world.Assembly);
-
-            // 构造行为树
-            world.AddComponent<BehaviorTreeComponent>().Load(world.Assembly);
+            world.AddComponent<FactoryComponent<Unit>>();
+            world.AddComponent<BehaviorTreeComponent>();
+            world.Load();
 
 
             Unit player1 = world.GetComponent<FactoryComponent<Unit>>().Create(1);