Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
老鱼er
et
提交
1da8e6fd
E
et
项目概览
老鱼er
/
et
与 Fork 源项目一致
从无法访问的项目Fork
通知
10
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
et
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
1da8e6fd
编写于
11月 21, 2016
作者:
T
tanghai
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
调整Entity和Component继承关系,从继承Object改成继承Disposer,Disposer继承于Object
上级
7665068e
变更
37
隐藏空白更改
内联
并排
Showing
37 changed file
with
475 addition
and
85 deletion
+475
-85
Server/App/Program.cs
Server/App/Program.cs
+7
-3
Server/Controller/Message/M2A_ReloadHandler.cs
Server/Controller/Message/M2A_ReloadHandler.cs
+1
-1
Server/Model/Component/AppManagerComponent.cs
Server/Model/Component/AppManagerComponent.cs
+2
-2
Server/Model/Component/GateSessionKeyComponent.cs
Server/Model/Component/GateSessionKeyComponent.cs
+2
-2
Server/Model/Component/RealmGateAddressComponent.cs
Server/Model/Component/RealmGateAddressComponent.cs
+2
-2
Server/Model/Component/StartConfigComponent.cs
Server/Model/Component/StartConfigComponent.cs
+2
-2
Server/Model/Server.Model.csproj
Server/Model/Server.Model.csproj
+12
-6
Unity/Assets/Editor/EditorInit.cs
Unity/Assets/Editor/EditorInit.cs
+3
-3
Unity/Assets/Editor/ObjectManagerToolsEditor/ObjectManagerToolsWindow.cs
...itor/ObjectManagerToolsEditor/ObjectManagerToolsWindow.cs
+2
-2
Unity/Assets/Scripts/Component/BenchmakComponent.cs
Unity/Assets/Scripts/Component/BenchmakComponent.cs
+2
-2
Unity/Assets/Scripts/Component/ClientConfigComponent.cs
Unity/Assets/Scripts/Component/ClientConfigComponent.cs
+2
-2
Unity/Assets/Scripts/Component/ConfigComponent.cs
Unity/Assets/Scripts/Component/ConfigComponent.cs
+1
-1
Unity/Assets/Scripts/Component/EventComponent.cs
Unity/Assets/Scripts/Component/EventComponent.cs
+3
-3
Unity/Assets/Scripts/Component/GameObjectComponent.cs
Unity/Assets/Scripts/Component/GameObjectComponent.cs
+2
-2
Unity/Assets/Scripts/Component/MessageDispatherComponent.cs
Unity/Assets/Scripts/Component/MessageDispatherComponent.cs
+3
-3
Unity/Assets/Scripts/Component/NetInnerComponent.cs
Unity/Assets/Scripts/Component/NetInnerComponent.cs
+2
-2
Unity/Assets/Scripts/Component/NetOuterComponent.cs
Unity/Assets/Scripts/Component/NetOuterComponent.cs
+2
-2
Unity/Assets/Scripts/Component/RobotComponent.cs
Unity/Assets/Scripts/Component/RobotComponent.cs
+2
-2
Unity/Assets/Scripts/Component/TimerComponent.cs
Unity/Assets/Scripts/Component/TimerComponent.cs
+2
-2
Unity/Assets/Scripts/Component/UIComponent.cs
Unity/Assets/Scripts/Component/UIComponent.cs
+3
-3
Unity/Assets/Scripts/Component/Unit.meta
Unity/Assets/Scripts/Component/Unit.meta
+9
-0
Unity/Assets/Scripts/Entity/Unit.cs
Unity/Assets/Scripts/Entity/Unit.cs
+30
-0
Unity/Assets/Scripts/Entity/Unit.cs.meta
Unity/Assets/Scripts/Entity/Unit.cs.meta
+12
-0
Unity/Assets/Scripts/Init.cs
Unity/Assets/Scripts/Init.cs
+3
-3
Unity/Assets/Scripts/Object/Component.cs
Unity/Assets/Scripts/Object/Component.cs
+2
-7
Unity/Assets/Scripts/Object/Disposer.cs
Unity/Assets/Scripts/Object/Disposer.cs
+24
-0
Unity/Assets/Scripts/Object/Disposer.cs.meta
Unity/Assets/Scripts/Object/Disposer.cs.meta
+12
-0
Unity/Assets/Scripts/Object/DisposerEventAttribute.cs
Unity/Assets/Scripts/Object/DisposerEventAttribute.cs
+1
-1
Unity/Assets/Scripts/Object/DisposerEventAttribute.cs.meta
Unity/Assets/Scripts/Object/DisposerEventAttribute.cs.meta
+0
-0
Unity/Assets/Scripts/Object/DisposerManager.cs
Unity/Assets/Scripts/Object/DisposerManager.cs
+299
-0
Unity/Assets/Scripts/Object/DisposerManager.cs.meta
Unity/Assets/Scripts/Object/DisposerManager.cs.meta
+0
-0
Unity/Assets/Scripts/Object/Entity.cs
Unity/Assets/Scripts/Object/Entity.cs
+7
-10
Unity/Assets/Scripts/Object/EntityType.cs
Unity/Assets/Scripts/Object/EntityType.cs
+1
-0
Unity/Assets/Scripts/Object/Object.cs
Unity/Assets/Scripts/Object/Object.cs
+10
-5
Unity/Controller/Unity.Controller.csproj
Unity/Controller/Unity.Controller.csproj
+0
-8
Unity/ProjectSettings/EditorSettings.asset
Unity/ProjectSettings/EditorSettings.asset
+0
-0
Unity/Unity.csproj
Unity/Unity.csproj
+8
-4
未找到文件。
Server/App/Program.cs
浏览文件 @
1da8e6fd
using
System
;
using
Base
;
using
Model
;
using
MongoDB.Bson
;
using
NLog
;
namespace
App
...
...
@@ -11,8 +12,8 @@ namespace App
{
try
{
Object
Manager
.
Instance
.
Register
(
"Model"
,
typeof
(
Game
).
Assembly
);
Object
Manager
.
Instance
.
Register
(
"Controller"
,
DllHelper
.
GetController
());
Disposer
Manager
.
Instance
.
Register
(
"Model"
,
typeof
(
Game
).
Assembly
);
Disposer
Manager
.
Instance
.
Register
(
"Controller"
,
DllHelper
.
GetController
());
StartConfig
startConfig
=
Game
.
Scene
.
AddComponent
<
StartConfigComponent
,
string
[
]>
(
args
).
MyConfig
;
...
...
@@ -23,6 +24,9 @@ namespace App
Log
.
Info
(
"server start........................"
);
Unit
unit
=
new
Unit
(
UnitType
.
Hero
);
Log
.
Debug
(
unit
.
ToJson
());
Game
.
Scene
.
AddComponent
<
EventComponent
>();
Game
.
Scene
.
AddComponent
<
TimerComponent
>();
...
...
@@ -66,7 +70,7 @@ namespace App
while
(
true
)
{
Object
Manager
.
Instance
.
Update
();
Disposer
Manager
.
Instance
.
Update
();
}
}
catch
(
Exception
e
)
...
...
Server/Controller/Message/M2A_ReloadHandler.cs
浏览文件 @
1da8e6fd
...
...
@@ -12,7 +12,7 @@ namespace Controller
A2M_Reload
a2MReload
=
new
A2M_Reload
();
try
{
Object
Manager
.
Instance
.
Register
(
"Controller"
,
DllHelper
.
GetController
());
Disposer
Manager
.
Instance
.
Register
(
"Controller"
,
DllHelper
.
GetController
());
}
catch
(
Exception
e
)
{
...
...
Server/Model/Component/AppManagerComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -6,8 +6,8 @@ using Base;
namespace
Model
{
[
Object
Event
]
public
class
AppManagerComponentEvent
:
Object
Event
<
AppManagerComponent
>,
IAwake
[
Disposer
Event
]
public
class
AppManagerComponentEvent
:
Disposer
Event
<
AppManagerComponent
>,
IAwake
{
public
void
Awake
()
{
...
...
Server/Model/Component/GateSessionKeyComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -3,8 +3,8 @@ using Base;
namespace
Model
{
[
Object
Event
]
public
class
GateSessionKeyComponentEvent
:
Object
Event
<
GateSessionKeyComponent
>,
IAwake
[
Disposer
Event
]
public
class
GateSessionKeyComponentEvent
:
Disposer
Event
<
GateSessionKeyComponent
>,
IAwake
{
public
void
Awake
()
{
...
...
Server/Model/Component/RealmGateAddressComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -3,8 +3,8 @@ using Base;
namespace
Model
{
[
Object
Event
]
public
class
RealmGateAddressComponentEvent
:
Object
Event
<
RealmGateAddressComponent
>,
IAwake
[
Disposer
Event
]
public
class
RealmGateAddressComponentEvent
:
Disposer
Event
<
RealmGateAddressComponent
>,
IAwake
{
public
void
Awake
()
{
...
...
Server/Model/Component/StartConfigComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -6,8 +6,8 @@ using CommandLine;
namespace
Model
{
[
Object
Event
]
public
class
StartConfigComponentEvent
:
Object
Event
<
StartConfigComponent
>,
IAwake
<
string
[
]>
[
Disposer
Event
]
public
class
StartConfigComponentEvent
:
Disposer
Event
<
StartConfigComponent
>,
IAwake
<
string
[
]>
{
public
void
Awake
(
string
[]
args
)
{
...
...
Server/Model/Server.Model.csproj
浏览文件 @
1da8e6fd
...
...
@@ -113,6 +113,9 @@
<Compile
Include=
"..\..\Unity\Assets\Scripts\Entity\Session.cs"
>
<Link>
Entity\Session.cs
</Link>
</Compile>
<Compile
Include=
"..\..\Unity\Assets\Scripts\Entity\Unit.cs"
>
<Link>
Entity\Unit.cs
</Link>
</Compile>
<Compile
Include=
"..\..\Unity\Assets\Scripts\Event\AEventAttribute.cs"
>
<Link>
Event\AEventAttribute.cs
</Link>
</Compile>
...
...
@@ -161,6 +164,15 @@
<Compile
Include=
"..\..\Unity\Assets\Scripts\Object\Component.cs"
>
<Link>
Object\Component.cs
</Link>
</Compile>
<Compile
Include=
"..\..\Unity\Assets\Scripts\Object\Disposer.cs"
>
<Link>
Object\Disposer.cs
</Link>
</Compile>
<Compile
Include=
"..\..\Unity\Assets\Scripts\Object\DisposerEventAttribute.cs"
>
<Link>
Object\DisposerEventAttribute.cs
</Link>
</Compile>
<Compile
Include=
"..\..\Unity\Assets\Scripts\Object\DisposerManager.cs"
>
<Link>
Object\DisposerManager.cs
</Link>
</Compile>
<Compile
Include=
"..\..\Unity\Assets\Scripts\Object\Entity.cs"
>
<Link>
Object\Entity.cs
</Link>
</Compile>
...
...
@@ -179,12 +191,6 @@
<Compile
Include=
"..\..\Unity\Assets\Scripts\Object\Object.cs"
>
<Link>
Object\Object.cs
</Link>
</Compile>
<Compile
Include=
"..\..\Unity\Assets\Scripts\Object\ObjectEventAttribute.cs"
>
<Link>
Object\ObjectEventAttribute.cs
</Link>
</Compile>
<Compile
Include=
"..\..\Unity\Assets\Scripts\Object\ObjectManager.cs"
>
<Link>
Object\ObjectManager.cs
</Link>
</Compile>
<Compile
Include=
"..\..\Unity\Assets\Scripts\Other\Options.cs"
>
<Link>
Other\Options.cs
</Link>
</Compile>
...
...
Unity/Assets/Editor/EditorInit.cs
浏览文件 @
1da8e6fd
...
...
@@ -11,7 +11,7 @@ namespace MyEditor
{
static
EditorInit
()
{
Object
Manager
.
Instance
.
Register
(
"Editor"
,
typeof
(
EditorInit
).
Assembly
);
Disposer
Manager
.
Instance
.
Register
(
"Editor"
,
typeof
(
EditorInit
).
Assembly
);
EditorApplication
.
update
+=
Update
;
}
...
...
@@ -24,11 +24,11 @@ namespace MyEditor
try
{
Object
Manager
.
Instance
.
Update
();
Disposer
Manager
.
Instance
.
Update
();
}
catch
(
Exception
e
)
{
Object
Manager
.
Reset
();
Disposer
Manager
.
Reset
();
Log
.
Error
(
e
.
ToString
());
}
}
...
...
Unity/Assets/Editor/ObjectManagerToolsEditor/ObjectManagerToolsWindow.cs
浏览文件 @
1da8e6fd
...
...
@@ -7,13 +7,13 @@ public class ObjectManagerToolsWindow : EditorWindow
[
MenuItem
(
"Tools/ObjectManagerTools/显示未Dispose的对象"
)]
private
static
void
ShowUnDisposeObjects
()
{
Log
.
Info
(
Object
Manager
.
Instance
.
ToString
());
Log
.
Info
(
Disposer
Manager
.
Instance
.
ToString
());
}
[
MenuItem
(
"Tools/ObjectManagerTools/清除所有对象"
)]
private
static
void
ClearAllObjects
()
{
Object
Manager
.
Reset
();
Disposer
Manager
.
Reset
();
}
}
\ No newline at end of file
Unity/Assets/Scripts/Component/BenchmakComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -3,8 +3,8 @@ using Base;
namespace
Model
{
[
Object
Event
]
public
class
BenchmakComponentEvent
:
Object
Event
<
BenchmakComponent
>,
IAwake
<
string
>
[
Disposer
Event
]
public
class
BenchmakComponentEvent
:
Disposer
Event
<
BenchmakComponent
>,
IAwake
<
string
>
{
public
void
Awake
(
string
address
)
{
...
...
Unity/Assets/Scripts/Component/ClientConfigComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -3,8 +3,8 @@ using Base;
namespace
Model
{
[
Object
Event
]
public
class
ClientConfigComponentEvent
:
Object
Event
<
ClientConfigComponent
>,
IAwake
[
Disposer
Event
]
public
class
ClientConfigComponentEvent
:
Disposer
Event
<
ClientConfigComponent
>,
IAwake
{
public
void
Awake
()
{
...
...
Unity/Assets/Scripts/Component/ConfigComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -10,7 +10,7 @@ namespace Model
public
void
Load
()
{
Assembly
assembly
=
Object
Manager
.
Instance
.
GetAssembly
(
"Base"
);
Assembly
assembly
=
Disposer
Manager
.
Instance
.
GetAssembly
(
"Base"
);
this
.
allConfig
=
new
Dictionary
<
Type
,
ICategory
>();
Type
[]
types
=
assembly
.
GetTypes
();
...
...
Unity/Assets/Scripts/Component/EventComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -5,8 +5,8 @@ using Base;
namespace
Model
{
[
Object
Event
]
public
class
EventComponentEvent
:
Object
Event
<
EventComponent
>,
ILoader
,
IAwake
[
Disposer
Event
]
public
class
EventComponentEvent
:
Disposer
Event
<
EventComponent
>,
ILoader
,
IAwake
{
public
void
Load
()
{
...
...
@@ -29,7 +29,7 @@ namespace Model
public
void
Load
()
{
this
.
allEvents
=
new
Dictionary
<
EventIdType
,
List
<
object
>>();
Assembly
[]
assemblies
=
Object
Manager
.
Instance
.
GetAssemblies
();
Assembly
[]
assemblies
=
Disposer
Manager
.
Instance
.
GetAssemblies
();
foreach
(
Assembly
assembly
in
assemblies
)
{
Type
[]
types
=
assembly
.
GetTypes
();
...
...
Unity/Assets/Scripts/Component/GameObjectComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -4,8 +4,8 @@ using Component = UnityEngine.Component;
namespace
Model
{
[
Object
Event
]
public
class
GameObjectComponentEvent
:
Object
Event
<
GameObjectComponent
>,
IAwake
<
GameObject
>
[
Disposer
Event
]
public
class
GameObjectComponentEvent
:
Disposer
Event
<
GameObjectComponent
>,
IAwake
<
GameObject
>
{
public
void
Awake
(
GameObject
gameObject
)
{
...
...
Unity/Assets/Scripts/Component/MessageDispatherComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -5,8 +5,8 @@ using Base;
namespace
Model
{
[
Object
Event
]
public
class
MessageHandlerComponentEvent
:
Object
Event
<
MessageDispatherComponent
>,
ILoader
,
IAwake
<
AppType
>
[
Disposer
Event
]
public
class
MessageHandlerComponentEvent
:
Disposer
Event
<
MessageDispatherComponent
>,
ILoader
,
IAwake
<
AppType
>
{
public
void
Load
()
{
...
...
@@ -40,7 +40,7 @@ namespace Model
this
.
handlers
=
new
Dictionary
<
ushort
,
List
<
IMHandler
>>();
this
.
messageOpcode
=
new
Dictionary
<
Type
,
MessageAttribute
>();
Assembly
[]
assemblies
=
Object
Manager
.
Instance
.
GetAssemblies
();
Assembly
[]
assemblies
=
Disposer
Manager
.
Instance
.
GetAssemblies
();
foreach
(
Assembly
assembly
in
assemblies
)
{
...
...
Unity/Assets/Scripts/Component/NetInnerComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -3,8 +3,8 @@ using Base;
namespace
Model
{
[
Object
Event
]
public
class
NetInnerComponentEvent
:
Object
Event
<
NetInnerComponent
>,
IUpdate
,
IAwake
,
IAwake
<
string
,
int
>
[
Disposer
Event
]
public
class
NetInnerComponentEvent
:
Disposer
Event
<
NetInnerComponent
>,
IUpdate
,
IAwake
,
IAwake
<
string
,
int
>
{
public
void
Update
()
{
...
...
Unity/Assets/Scripts/Component/NetOuterComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -2,8 +2,8 @@
namespace
Model
{
[
Object
Event
]
public
class
NetOuterComponentEvent
:
Object
Event
<
NetOuterComponent
>,
IUpdate
,
IAwake
,
IAwake
<
string
,
int
>
[
Disposer
Event
]
public
class
NetOuterComponentEvent
:
Disposer
Event
<
NetOuterComponent
>,
IUpdate
,
IAwake
,
IAwake
<
string
,
int
>
{
public
void
Update
()
{
...
...
Unity/Assets/Scripts/Component/RobotComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -2,8 +2,8 @@
namespace
Model
{
[
Object
Event
]
public
class
RobotComponentEvent
:
Object
Event
<
RobotComponent
>,
IAwake
[
Disposer
Event
]
public
class
RobotComponentEvent
:
Disposer
Event
<
RobotComponent
>,
IAwake
{
public
void
Awake
()
{
...
...
Unity/Assets/Scripts/Component/TimerComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -12,8 +12,8 @@ namespace Model
public
TaskCompletionSource
<
bool
>
tcs
;
}
[
Object
Event
]
public
class
TimerComponentEvent
:
Object
Event
<
TimerComponent
>,
IUpdate
[
Disposer
Event
]
public
class
TimerComponentEvent
:
Disposer
Event
<
TimerComponent
>,
IUpdate
{
public
void
Update
()
{
...
...
Unity/Assets/Scripts/Component/UIComponent.cs
浏览文件 @
1da8e6fd
...
...
@@ -6,8 +6,8 @@ using UnityEngine;
namespace
Model
{
[
Object
Event
]
public
class
UIComponentEvent
:
Object
Event
<
UIComponent
>,
IAwake
,
ILoader
[
Disposer
Event
]
public
class
UIComponentEvent
:
Disposer
Event
<
UIComponent
>,
IAwake
,
ILoader
{
public
void
Load
()
{
...
...
@@ -63,7 +63,7 @@ namespace Model
{
this
.
UiTypes
=
new
Dictionary
<
UIType
,
IUIFactory
>();
Assembly
[]
assemblies
=
Object
Manager
.
Instance
.
GetAssemblies
();
Assembly
[]
assemblies
=
Disposer
Manager
.
Instance
.
GetAssemblies
();
foreach
(
Assembly
assembly
in
assemblies
)
{
Type
[]
types
=
assembly
.
GetTypes
();
...
...
Unity/Assets/Scripts/Component/Unit.meta
0 → 100644
浏览文件 @
1da8e6fd
fileFormatVersion: 2
guid: a6777dcb4aea2ef4fb129b4bfd059aa7
folderAsset: yes
timeCreated: 1479442397
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
Unity/Assets/Scripts/Entity/Unit.cs
0 → 100644
浏览文件 @
1da8e6fd
using
Base
;
namespace
Model
{
public
enum
UnitType
{
Hero
,
Npc
,
}
public
sealed
class
Unit
:
Entity
{
public
UnitType
UnitType
{
get
;
}
public
override
void
Dispose
()
{
if
(
this
.
Id
==
0
)
{
return
;
}
base
.
Dispose
();
}
public
Unit
(
UnitType
unitType
)
:
base
(
EntityType
.
UI
)
{
this
.
UnitType
=
unitType
;
}
}
}
\ No newline at end of file
Unity/Assets/Scripts/Entity/Unit.cs.meta
0 → 100644
浏览文件 @
1da8e6fd
fileFormatVersion: 2
guid: 4da2290eec277924c88e511d3e4ae7b9
timeCreated: 1479694292
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Unity/Assets/Scripts/Init.cs
浏览文件 @
1da8e6fd
...
...
@@ -8,8 +8,8 @@ namespace Model
{
private
void
Start
()
{
Object
Manager
.
Instance
.
Register
(
"Model"
,
typeof
(
Game
).
Assembly
);
Object
Manager
.
Instance
.
Register
(
"Controller"
,
DllHelper
.
GetController
());
Disposer
Manager
.
Instance
.
Register
(
"Model"
,
typeof
(
Game
).
Assembly
);
Disposer
Manager
.
Instance
.
Register
(
"Controller"
,
DllHelper
.
GetController
());
Game
.
Scene
.
AddComponent
<
EventComponent
>().
Run
(
EventIdType
.
InitSceneStart
);
}
...
...
@@ -18,7 +18,7 @@ namespace Model
{
try
{
Object
Manager
.
Instance
.
Update
();
Disposer
Manager
.
Instance
.
Update
();
}
catch
(
Exception
e
)
{
...
...
Unity/Assets/Scripts/Object/Component.cs
浏览文件 @
1da8e6fd
using
System
;
using
MongoDB.Bson.Serialization.Attributes
;
using
MongoDB.Bson.Serialization.Attributes
;
namespace
Model
{
[
BsonKnownTypes
(
typeof
(
AConfigComponent
))]
public
abstract
class
Component
:
Object
,
IDisposable
public
abstract
class
Component
:
Disposer
{
[
BsonIgnore
]
public
Entity
Owner
{
get
;
set
;
}
...
...
@@ -16,12 +15,10 @@ namespace Model
protected
Component
()
{
ObjectManager
.
Instance
.
Add
(
this
);
}
protected
Component
(
long
id
):
base
(
id
)
{
ObjectManager
.
Instance
.
Add
(
this
);
}
protected
T
GetComponent
<
T
>()
where
T
:
Component
...
...
@@ -37,8 +34,6 @@ namespace Model
}
base
.
Dispose
();
ObjectManager
.
Instance
.
Remove
(
this
);
}
}
}
\ No newline at end of file
Unity/Assets/Scripts/Object/Disposer.cs
0 → 100644
浏览文件 @
1da8e6fd
using
System
;
using
Base
;
namespace
Model
{
public
abstract
class
Disposer
:
Object
,
IDisposable
{
protected
Disposer
():
base
(
IdGenerater
.
GenerateId
())
{
DisposerManager
.
Instance
.
Add
(
this
);
}
protected
Disposer
(
long
id
):
base
(
id
)
{
DisposerManager
.
Instance
.
Add
(
this
);
}
public
virtual
void
Dispose
()
{
DisposerManager
.
Instance
.
Remove
(
this
);
this
.
Id
=
0
;
}
}
}
\ No newline at end of file
Unity/Assets/Scripts/Object/Disposer.cs.meta
0 → 100644
浏览文件 @
1da8e6fd
fileFormatVersion: 2
guid: 785b1815942ba374b9cea238401cd506
timeCreated: 1479695006
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Unity/Assets/Scripts/Object/
Object
EventAttribute.cs
→
Unity/Assets/Scripts/Object/
Disposer
EventAttribute.cs
浏览文件 @
1da8e6fd
...
...
@@ -3,7 +3,7 @@
namespace
Model
{
[
AttributeUsage
(
AttributeTargets
.
Class
,
AllowMultiple
=
true
)]
public
class
Object
EventAttribute
:
Attribute
public
class
Disposer
EventAttribute
:
Attribute
{
}
}
\ No newline at end of file
Unity/Assets/Scripts/Object/
Object
EventAttribute.cs.meta
→
Unity/Assets/Scripts/Object/
Disposer
EventAttribute.cs.meta
浏览文件 @
1da8e6fd
文件已移动
Unity/Assets/Scripts/Object/
Object
Manager.cs
→
Unity/Assets/Scripts/Object/
Disposer
Manager.cs
浏览文件 @
1da8e6fd
...
...
@@ -7,13 +7,13 @@ using Base;
namespace
Model
{
public
interface
I
Object
Event
public
interface
I
Disposer
Event
{
Type
ValueType
();
void
SetValue
(
object
value
);
}
public
abstract
class
ObjectEvent
<
T
>
:
IObject
Event
public
abstract
class
DisposerEvent
<
T
>
:
IDisposer
Event
{
private
T
value
;
...
...
@@ -33,19 +33,19 @@ namespace Model
}
}
public
sealed
class
Object
Manager
:
IDisposable
public
sealed
class
Disposer
Manager
:
IDisposable
{
private
readonly
Dictionary
<
string
,
Assembly
>
assemblies
=
new
Dictionary
<
string
,
Assembly
>();
private
Dictionary
<
Type
,
I
ObjectEvent
>
object
Events
;
private
Dictionary
<
Type
,
I
DisposerEvent
>
disposer
Events
;
private
readonly
HashSet
<
Object
>
objects
=
new
HashSet
<
Object
>();
private
readonly
HashSet
<
Object
>
updates
=
new
HashSet
<
Object
>();
private
readonly
HashSet
<
Object
>
loaders
=
new
HashSet
<
Object
>();
private
readonly
HashSet
<
Disposer
>
disposers
=
new
HashSet
<
Disposer
>();
private
readonly
HashSet
<
Disposer
>
updates
=
new
HashSet
<
Disposer
>();
private
readonly
HashSet
<
Disposer
>
loaders
=
new
HashSet
<
Disposer
>();
private
static
ObjectManager
instance
=
new
Object
Manager
();
private
static
DisposerManager
instance
=
new
Disposer
Manager
();
public
static
Object
Manager
Instance
public
static
Disposer
Manager
Instance
{
get
{
...
...
@@ -53,19 +53,19 @@ namespace Model
}
}
private
Object
Manager
()
private
Disposer
Manager
()
{
}
public
static
void
Reset
()
{
instance
.
Dispose
();
instance
=
new
Object
Manager
();
instance
=
new
Disposer
Manager
();
}
public
void
Dispose
()
{
foreach
(
Object
o
in
this
.
object
s
.
ToArray
())
foreach
(
Disposer
o
in
this
.
disposer
s
.
ToArray
())
{
o
.
Dispose
();
}
...
...
@@ -75,13 +75,13 @@ namespace Model
{
this
.
assemblies
[
name
]
=
assembly
;
objectEvents
=
new
Dictionary
<
Type
,
IObject
Event
>();
this
.
disposerEvents
=
new
Dictionary
<
Type
,
IDisposer
Event
>();
foreach
(
Assembly
ass
in
this
.
assemblies
.
Values
)
{
Type
[]
types
=
ass
.
GetTypes
();
foreach
(
Type
type
in
types
)
{
object
[]
attrs
=
type
.
GetCustomAttributes
(
typeof
(
Object
EventAttribute
),
false
);
object
[]
attrs
=
type
.
GetCustomAttributes
(
typeof
(
Disposer
EventAttribute
),
false
);
if
(
attrs
.
Length
==
0
)
{
...
...
@@ -89,12 +89,12 @@ namespace Model
}
object
obj
=
Activator
.
CreateInstance
(
type
);
I
ObjectEvent
objectEvent
=
obj
as
IObject
Event
;
if
(
object
Event
==
null
)
I
DisposerEvent
disposerEvent
=
obj
as
IDisposer
Event
;
if
(
disposer
Event
==
null
)
{
Log
.
Error
(
$"组件事件没有继承IComponentEvent:
{
type
.
Name
}
"
);
}
objectEvents
[
objectEvent
.
ValueType
()]
=
object
Event
;
this
.
disposerEvents
[
disposerEvent
.
ValueType
()]
=
disposer
Event
;
}
}
...
...
@@ -113,152 +113,152 @@ namespace Model
private
void
Load
()
{
foreach
(
Object
obj
in
this
.
loaders
)
foreach
(
Disposer
disposer
in
this
.
loaders
)
{
I
ObjectEvent
object
Event
;
if
(!
objectEvents
.
TryGetValue
(
obj
.
GetType
(),
out
object
Event
))
I
DisposerEvent
disposer
Event
;
if
(!
this
.
disposerEvents
.
TryGetValue
(
disposer
.
GetType
(),
out
disposer
Event
))
{
continue
;
}
ILoader
iLoader
=
object
Event
as
ILoader
;
ILoader
iLoader
=
disposer
Event
as
ILoader
;
if
(
iLoader
==
null
)
{
continue
;
}
objectEvent
.
SetValue
(
obj
);
disposerEvent
.
SetValue
(
disposer
);
iLoader
.
Load
();
}
}
public
void
Add
(
Object
obj
)
public
void
Add
(
Disposer
disposer
)
{
if
(
object
Events
==
null
)
if
(
this
.
disposer
Events
==
null
)
{
return
;
}
this
.
objects
.
Add
(
obj
);
I
ObjectEvent
object
Event
;
if
(!
objectEvents
.
TryGetValue
(
obj
.
GetType
(),
out
object
Event
))
this
.
disposers
.
Add
(
disposer
);
I
DisposerEvent
disposer
Event
;
if
(!
this
.
disposerEvents
.
TryGetValue
(
disposer
.
GetType
(),
out
disposer
Event
))
{
return
;
}
IUpdate
iUpdate
=
object
Event
as
IUpdate
;
IUpdate
iUpdate
=
disposer
Event
as
IUpdate
;
if
(
iUpdate
!=
null
)
{
this
.
updates
.
Add
(
obj
);
this
.
updates
.
Add
(
disposer
);
}
ILoader
iLoader
=
object
Event
as
ILoader
;
ILoader
iLoader
=
disposer
Event
as
ILoader
;
if
(
iLoader
!=
null
)
{
this
.
loaders
.
Add
(
obj
);
this
.
loaders
.
Add
(
disposer
);
}
}
public
void
Remove
(
Object
obj
)
public
void
Remove
(
Disposer
disposer
)
{
this
.
objects
.
Remove
(
obj
);
this
.
disposers
.
Remove
(
disposer
);
I
ObjectEvent
object
Event
;
if
(!
objectEvents
.
TryGetValue
(
obj
.
GetType
(),
out
object
Event
))
I
DisposerEvent
disposer
Event
;
if
(!
this
.
disposerEvents
.
TryGetValue
(
disposer
.
GetType
(),
out
disposer
Event
))
{
return
;
}
IUpdate
iUpdate
=
object
Event
as
IUpdate
;
IUpdate
iUpdate
=
disposer
Event
as
IUpdate
;
if
(
iUpdate
!=
null
)
{
this
.
updates
.
Remove
(
obj
);
this
.
updates
.
Remove
(
disposer
);
}
ILoader
iLoader
=
object
Event
as
ILoader
;
ILoader
iLoader
=
disposer
Event
as
ILoader
;
if
(
iLoader
!=
null
)
{
this
.
loaders
.
Remove
(
obj
);
this
.
loaders
.
Remove
(
disposer
);
}
}
public
void
Awake
(
Object
obj
)
public
void
Awake
(
Disposer
disposer
)
{
I
ObjectEvent
object
Event
;
if
(!
objectEvents
.
TryGetValue
(
obj
.
GetType
(),
out
object
Event
))
I
DisposerEvent
disposer
Event
;
if
(!
this
.
disposerEvents
.
TryGetValue
(
disposer
.
GetType
(),
out
disposer
Event
))
{
return
;
}
IAwake
iAwake
=
object
Event
as
IAwake
;
IAwake
iAwake
=
disposer
Event
as
IAwake
;
if
(
iAwake
==
null
)
{
return
;
}
objectEvent
.
SetValue
(
obj
);
disposerEvent
.
SetValue
(
disposer
);
iAwake
.
Awake
();
}
public
void
Awake
<
P1
>(
Object
obj
,
P1
p1
)
public
void
Awake
<
P1
>(
Disposer
disposer
,
P1
p1
)
{
I
ObjectEvent
object
Event
;
if
(!
objectEvents
.
TryGetValue
(
obj
.
GetType
(),
out
object
Event
))
I
DisposerEvent
disposer
Event
;
if
(!
this
.
disposerEvents
.
TryGetValue
(
disposer
.
GetType
(),
out
disposer
Event
))
{
return
;
}
IAwake
<
P1
>
iAwake
=
object
Event
as
IAwake
<
P1
>;
IAwake
<
P1
>
iAwake
=
disposer
Event
as
IAwake
<
P1
>;
if
(
iAwake
==
null
)
{
return
;
}
objectEvent
.
SetValue
(
obj
);
disposerEvent
.
SetValue
(
disposer
);
iAwake
.
Awake
(
p1
);
}
public
void
Awake
<
P1
,
P2
>(
Object
obj
,
P1
p1
,
P2
p2
)
public
void
Awake
<
P1
,
P2
>(
Disposer
disposer
,
P1
p1
,
P2
p2
)
{
I
ObjectEvent
object
Event
;
if
(!
objectEvents
.
TryGetValue
(
obj
.
GetType
(),
out
object
Event
))
I
DisposerEvent
disposer
Event
;
if
(!
this
.
disposerEvents
.
TryGetValue
(
disposer
.
GetType
(),
out
disposer
Event
))
{
return
;
}
IAwake
<
P1
,
P2
>
iAwake
=
object
Event
as
IAwake
<
P1
,
P2
>;
IAwake
<
P1
,
P2
>
iAwake
=
disposer
Event
as
IAwake
<
P1
,
P2
>;
if
(
iAwake
==
null
)
{
return
;
}
objectEvent
.
SetValue
(
obj
);
disposerEvent
.
SetValue
(
disposer
);
iAwake
.
Awake
(
p1
,
p2
);
}
public
void
Awake
<
P1
,
P2
,
P3
>(
Object
obj
,
P1
p1
,
P2
p2
,
P3
p3
)
public
void
Awake
<
P1
,
P2
,
P3
>(
Disposer
disposer
,
P1
p1
,
P2
p2
,
P3
p3
)
{
I
ObjectEvent
object
Event
;
if
(!
objectEvents
.
TryGetValue
(
obj
.
GetType
(),
out
object
Event
))
I
DisposerEvent
disposer
Event
;
if
(!
this
.
disposerEvents
.
TryGetValue
(
disposer
.
GetType
(),
out
disposer
Event
))
{
return
;
}
IAwake
<
P1
,
P2
,
P3
>
iAwake
=
object
Event
as
IAwake
<
P1
,
P2
,
P3
>;
IAwake
<
P1
,
P2
,
P3
>
iAwake
=
disposer
Event
as
IAwake
<
P1
,
P2
,
P3
>;
if
(
iAwake
==
null
)
{
return
;
}
objectEvent
.
SetValue
(
obj
);
disposerEvent
.
SetValue
(
disposer
);
iAwake
.
Awake
(
p1
,
p2
,
p3
);
}
public
void
Update
()
{
foreach
(
Object
obj
in
updates
)
foreach
(
Disposer
disposer
in
updates
)
{
I
ObjectEvent
object
Event
;
if
(!
objectEvents
.
TryGetValue
(
obj
.
GetType
(),
out
object
Event
))
I
DisposerEvent
disposer
Event
;
if
(!
this
.
disposerEvents
.
TryGetValue
(
disposer
.
GetType
(),
out
disposer
Event
))
{
continue
;
}
IUpdate
iUpdate
=
object
Event
as
IUpdate
;
IUpdate
iUpdate
=
disposer
Event
as
IUpdate
;
if
(
iUpdate
==
null
)
{
continue
;
}
objectEvent
.
SetValue
(
obj
);
disposerEvent
.
SetValue
(
disposer
);
try
{
iUpdate
.
Update
();
...
...
@@ -273,7 +273,7 @@ namespace Model
public
override
string
ToString
()
{
var
info
=
new
Dictionary
<
string
,
int
>();
foreach
(
Object
obj
in
object
s
)
foreach
(
Disposer
obj
in
this
.
disposer
s
)
{
if
(
info
.
ContainsKey
(
obj
.
GetType
().
Name
))
{
...
...
@@ -292,7 +292,7 @@ namespace Model
sb
.
Append
(
$"
{
info
[
key
],
10
}
{
key
}
\r\n"
);
}
sb
.
Append
(
$"\r\n update:
{
this
.
updates
.
Count
}
total:
{
this
.
object
s
.
Count
}
"
);
sb
.
Append
(
$"\r\n update:
{
this
.
updates
.
Count
}
total:
{
this
.
disposer
s
.
Count
}
"
);
return
sb
.
ToString
();
}
}
...
...
Unity/Assets/Scripts/Object/
Object
Manager.cs.meta
→
Unity/Assets/Scripts/Object/
Disposer
Manager.cs.meta
浏览文件 @
1da8e6fd
文件已移动
Unity/Assets/Scripts/Object/Entity.cs
浏览文件 @
1da8e6fd
...
...
@@ -6,7 +6,7 @@ using MongoDB.Bson.Serialization.Attributes;
namespace
Model
{
public
class
Entity
:
Object
public
class
Entity
:
Disposer
{
public
EntityType
Type
{
get
;
set
;
}
...
...
@@ -20,13 +20,12 @@ namespace Model
protected
Entity
(
EntityType
entityType
)
{
this
.
Type
=
entityType
;
ObjectManager
.
Instance
.
Add
(
this
);
}
protected
Entity
(
long
id
,
EntityType
entityType
)
:
base
(
id
)
{
this
.
Type
=
entityType
;
ObjectManager
.
Instance
.
Add
(
this
);
}
public
override
void
Dispose
()
...
...
@@ -49,8 +48,6 @@ namespace Model
Log
.
Error
(
e
.
ToString
());
}
}
ObjectManager
.
Instance
.
Remove
(
this
);
}
public
K
AddComponent
<
K
>()
where
K
:
Component
,
new
()
...
...
@@ -70,7 +67,7 @@ namespace Model
this
.
components
.
Add
(
component
);
this
.
componentDict
.
Add
(
component
.
GetType
(),
component
);
Object
Manager
.
Instance
.
Awake
(
component
);
Disposer
Manager
.
Instance
.
Awake
(
component
);
return
component
;
}
...
...
@@ -91,7 +88,7 @@ namespace Model
this
.
components
.
Add
(
component
);
this
.
componentDict
.
Add
(
component
.
GetType
(),
component
);
Object
Manager
.
Instance
.
Awake
(
component
,
p1
);
Disposer
Manager
.
Instance
.
Awake
(
component
,
p1
);
return
component
;
}
...
...
@@ -112,7 +109,7 @@ namespace Model
this
.
components
.
Add
(
component
);
this
.
componentDict
.
Add
(
component
.
GetType
(),
component
);
Object
Manager
.
Instance
.
Awake
(
component
,
p1
,
p2
);
Disposer
Manager
.
Instance
.
Awake
(
component
,
p1
,
p2
);
return
component
;
}
...
...
@@ -134,7 +131,7 @@ namespace Model
this
.
components
.
Add
(
component
);
this
.
componentDict
.
Add
(
component
.
GetType
(),
component
);
Object
Manager
.
Instance
.
Awake
(
component
,
p1
,
p2
,
p3
);
Disposer
Manager
.
Instance
.
Awake
(
component
,
p1
,
p2
,
p3
);
return
component
;
}
...
...
@@ -151,7 +148,7 @@ namespace Model
}
this
.
components
.
Add
(
component
);
this
.
componentDict
.
Add
(
component
.
GetType
(),
component
);
Object
Manager
.
Instance
.
Awake
(
component
);
Disposer
Manager
.
Instance
.
Awake
(
component
);
}
public
void
RemoveComponent
<
K
>()
where
K
:
Component
...
...
Unity/Assets/Scripts/Object/EntityType.cs
浏览文件 @
1da8e6fd
...
...
@@ -7,5 +7,6 @@
Session
,
UI
,
Config
,
Unit
,
}
}
\ No newline at end of file
Unity/Assets/Scripts/Object/Object.cs
浏览文件 @
1da8e6fd
...
...
@@ -5,11 +5,11 @@ using MongoDB.Bson.Serialization.Attributes;
namespace
Model
{
public
abstract
class
Object
:
I
Disposable
,
I
SupportInitialize
,
ICloneable
public
abstract
class
Object
:
ISupportInitialize
,
ICloneable
{
[
BsonId
]
[
BsonIgnoreIfDefault
]
public
long
Id
{
get
;
pr
ivate
set
;
}
public
long
Id
{
get
;
pr
otected
set
;
}
protected
Object
()
{
...
...
@@ -30,18 +30,23 @@ namespace Model
}
public
override
string
ToString
()
{
return
this
.
ToJson
();
}
public
string
ToJson
()
{
return
MongoHelper
.
ToJson
(
this
);
}
public
virtual
void
Dispose
()
public
byte
[]
ToBson
()
{
this
.
Id
=
0
;
return
MongoHelper
.
ToBson
(
this
)
;
}
public
object
Clone
()
{
return
MongoHelper
.
From
Json
(
this
.
GetType
(),
this
.
ToString
());
return
MongoHelper
.
From
Bson
(
this
.
GetType
(),
this
.
ToBson
());
}
}
}
\ No newline at end of file
Unity/Controller/Unity.Controller.csproj
浏览文件 @
1da8e6fd
...
...
@@ -59,14 +59,6 @@
<Compile
Include=
"UI\UILogin\Factory\UILoginFactory.cs"
/>
</ItemGroup>
<ItemGroup>
<ProjectReference
Include=
"..\Unity.CSharp.csproj"
>
<Project>
{4123f183-8f61-27ae-ea27-294dde0cc7eb}
</Project>
<Name>
Unity.CSharp
</Name>
</ProjectReference>
<ProjectReference
Include=
"..\Unity.CSharp.Plugins.csproj"
>
<Project>
{1aa60596-6964-87f6-2427-6ca85bbaf27d}
</Project>
<Name>
Unity.CSharp.Plugins
</Name>
</ProjectReference>
<ProjectReference
Include=
"..\Unity.csproj"
>
<Project>
{cf118143-7e37-744f-be45-3f55345fec40}
</Project>
<Name>
Unity
</Name>
...
...
Unity/ProjectSettings/EditorSettings.asset
浏览文件 @
1da8e6fd
无法预览此类型文件
Unity/Unity.csproj
浏览文件 @
1da8e6fd
...
...
@@ -13,11 +13,13 @@
<TargetFrameworkIdentifier>
.NETFramework
</TargetFrameworkIdentifier>
<TargetFrameworkVersion>
v3.5
</TargetFrameworkVersion>
<TargetFrameworkProfile>
Unity Full v3.5
</TargetFrameworkProfile>
<CompilerResponseFile></CompilerResponseFile>
<CompilerResponseFile>
</CompilerResponseFile>
<UnityProjectType>
Game:1
</UnityProjectType>
<UnityBuildTarget>
StandaloneWindows:5
</UnityBuildTarget>
<UnityVersion>
5.4.1f1
</UnityVersion>
<RootNamespace></RootNamespace>
<RootNamespace>
</RootNamespace>
</PropertyGroup>
<PropertyGroup
Condition=
" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "
>
<DebugType>
pdbonly
</DebugType>
...
...
@@ -109,6 +111,7 @@
<Compile
Include=
"Assets\Scripts\Entity\Message\Message.cs"
/>
<Compile
Include=
"Assets\Scripts\Entity\Scene.cs"
/>
<Compile
Include=
"Assets\Scripts\Entity\Session.cs"
/>
<Compile
Include=
"Assets\Scripts\Entity\Unit.cs"
/>
<Compile
Include=
"Assets\Scripts\Entity\UI.cs"
/>
<Compile
Include=
"Assets\Scripts\Event\AEventAttribute.cs"
/>
<Compile
Include=
"Assets\Scripts\Event\Env.cs"
/>
...
...
@@ -135,9 +138,10 @@
<Compile
Include=
"Assets\Scripts\Object\IAwake.cs"
/>
<Compile
Include=
"Assets\Scripts\Object\ILoader.cs"
/>
<Compile
Include=
"Assets\Scripts\Object\IUpdate.cs"
/>
<Compile
Include=
"Assets\Scripts\Object\Disposer.cs"
/>
<Compile
Include=
"Assets\Scripts\Object\Object.cs"
/>
<Compile
Include=
"Assets\Scripts\Object\
Object
EventAttribute.cs"
/>
<Compile
Include=
"Assets\Scripts\Object\
Object
Manager.cs"
/>
<Compile
Include=
"Assets\Scripts\Object\
Disposer
EventAttribute.cs"
/>
<Compile
Include=
"Assets\Scripts\Object\
Disposer
Manager.cs"
/>
<Compile
Include=
"Assets\Scripts\Other\Define.cs"
/>
<Compile
Include=
"Assets\Scripts\Other\GameException.cs"
/>
<Compile
Include=
"Assets\Scripts\Other\IUIFactory.cs"
/>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录