Лучший способ использовать множество переменных C # Unity - PullRequest
0 голосов
/ 12 мая 2018

Я сейчас работаю над игрой в Unity, это игра на основе 2D с определенными компонентами в 3D. Это игра бизнес-магнат. Поэтому я использую C # для своих сценариев, и в настоящее время у меня разные типы персонала, и мне нужны 3 переменные для каждого типа персонала. XStaffTotal, XStaffFree, XStaffUsed и, наконец, TotalStaff, который является суммой всех переменных XStaffTotal. Мой вопрос в том, что было бы хорошим или лучшим способом использования переменных. Это то, что я выбрал первым, я думаю, что есть лучший способ, но я не могу понять это.

public int TotalStaff;
public int LaborStaffFree;
public int LaborStaffUsed;
public int TotalLaborStaff;
public int RnDStaffFree;
public int RnDStaffUsed;
public int TotalRnDStaff;
public int AccountingStaffFree;
public int AccountingStaffUsed;
public int TotalAccountingStaff;
public int TechnicStaffFree;
public int TechnicStaffUsed;
public int TotalTechnicStaff;
public int SalesStaffFree;
public int SalesStaffUsed;
public int TotalSalesStaff;
public int MarketStaffFree;
public int MarketStaffUsed;
public int TotalMarketStaff;

Редактировать

Больше контекста. Таким образом, в основном у меня 9 кнопок. Каждый раз, когда вы нажимаете одну из кнопок, будь то Hire Labour или Hire RnD, это будет +1 к соответствующему XStaffFree, поэтому, если я нажму Hire Labour.

LaborStaffFree += 1;

Затем, когда вы реализуете в игре проект, требующий назначения персонала, например, для исследования материнских плат, в проекте будет установлен набор необходимых сотрудников, поэтому

LaborStaffUsed += ProjectManager.requiredstaff;
LaborStaffFree -= LaborStaffUsed;

С ProjectManager, являющимся еще одним сценарием c #, и обязательным персоналом, являющимся вышеупомянутым int.

PS. Это все в Unity

1 Ответ

0 голосов
/ 12 мая 2018

Вы можете сделать это, создав несколько классов и структур. Например, в вашем случае сначала создайте простую структуру для информации о персонале:

public struct StaffInfo
{
     public int StaffFree;
     public int StaffUsed;
     public int TotalStaff;
}

А затем используйте класс или структуру, которая содержит другое свойство типа StaffInfo.

public class Staffs
{
      public StaffInfo LaborStaff {get;set;}
      public StaffInfo RnDStaff {get;set;}
      public StaffInfo AccountingStaff {get;set;}
      public StaffInfo TechnicStaff {get;set;}
      public StaffInfo SalesStaff {get;set;}
      public StaffInfo MarketStaff {get;set;}
      public int TotalStaff {get;set;}
}

И если TotalStaff всегда равняется used + free, вы можете использовать свойство только для чтения только с getter.

public int TotalStaff => StaffFree + StaffUsed;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...