У меня есть класс c amera script
, который выполняет выборку, и он содержит следующие переменные и событие:
protected float CullDetailSmall = 25.0f;
protected float CullDetailMedium = 80.0f;
protected float CullDetailLarge = 130.0f;
protected float CullDetailExtraLarge = 250.0f;
protected float CullDetailXExtraLarge = 450.0f;
protected float CullDetailXXExtaLarge = 650.0f;
public virtual void Awake(){
//culling apply logic using above variable values
}
Класс camera script
является базовым классом для CamFly
и CamWalk
.Теперь я хочу изменить значения переменных базового класса camera script
, поэтому я делаю эту функцию в каждом классе (CamFly
и CamWalk
)
public void SetCullingValues(int cullDetailSmall
, int cullDetailMedium
, int cullDetailLarge
, int cullDetailExtraLarge
, int cullDetailXExtraLarge
, int cullDetailXXExtaLarge
, int CullFloor
)
{
base.CullDetailSmall = cullDetailSmall;
base.CullDetailMedium = cullDetailMedium;
base.CullDetailLarge = cullDetailLarge;
base.CullDetailExtraLarge = cullDetailExtraLarge;
base.CullDetailXExtraLarge = cullDetailXExtraLarge;
base.CullDetailXXExtaLarge = cullDetailXXExtaLarge;
base.CullFloor = CullFloor;
base.Awake();
}
Она работает нормально и делает то, что я хочу, ноэто конечно не хороший кусок кода.Я в восторге от того, как я могу сделать это правильно ??Помните
я вызываю вышеуказанную функцию при некоторых условиях, например, если выполняется какое-то условие, затем выполняйте вышеуказанную функцию и изменяйте переменную базового класса.
во-вторых, я хочу это для обоих унаследованных членов.