我想发送,接收和转换SkillEvent类的子类,并能够根据其类型在内部抓取自定义参数。
可能有许多具有不同参数的不同子类。
有没有一种方法可以避免为每种技能编写不同的方法?
class SkillEvent { float timestamp, EventType type }
class GrenadeSkillEvent : SkillEvent { Vector3 target_point}
[ClientRpc]
RpcSendSkillEvent(SkillEvent event){
eventManager.ExecuteEvent(event);
}
ExecuteEvent(SkillEvent event){
switch(event.type){
case GrenadeSkillEvent :
GrenadeSkillEvent grenadeEvent = (GrenadeSkillEvent) event;
float grenadeParam = event.grenadeParam;
break;
case OtherSkillEvent :
OtherSkillEvent otherEvent = (OtherSkillEvent ) event;
string stringParam = event.stringParam;
break;
}
}
我认为可以这样做,但显然不行。
有没有一种方法可以避免为每种技能编写不同的方法?
慕的地6264312
相关分类