3 回答

TA貢獻1875條經驗 獲得超5個贊
最好的方法是在頂級類上編寫通用的getter方法,SkillEvent然后在special類中重寫該方法。由于您似乎需要不同的類型,因此我認為您可以使用執行您在類內部進行參數化的方法的方法
這是您當前代碼已發布的示例:
class SkillEvent {
float timestamp;
EventType type ;
public virtual void executeEvent(){ //handles the general case for the execute funciton
execute(timestamp);
}
}
class GrenadeSkillEvent : SkillEvent { //overriden to pass target point into event execution
Vector3 target_point;
public override void executeEvent(){
execute(target_point);
}
}
class BonusEvent : SkillEvent {
int bonus_health;
public override void executeEvent(){/overriden to pass bonus health into event
execute(bonus_health);
}
}
class TerrainEvent : SkillEvent {
GameObject obj;
public override void executeEvent(){//overriden to play animation before event is executed
animation(obj);
execute();
}
}
[ClientRpc]
RpcSendSkillEvent(SkillEvent event){
eventManager.ExecuteEvent(event);
}
ExecuteEvent(SkillEvent event){
event.executeEvent();
}
- 3 回答
- 0 關注
- 167 瀏覽
添加回答
舉報