В скриптах BGT свойства класса доступны объектам других классов, если не помечены как private.
Однако в AngelScript (основе, на которой создан язык BGT) это всего лишь поведение по умолчанию и его можно изменить при помощи так называемых аксессоров (или сеттеров и геттеров), которые позволяют контролировать доступ к свойствам класса.
Это даёт возможность сделать, например, отдельные свойства доступными только для чтения или только для записи.
Общий синтаксис определения аксессоров следующий:
class MyObj
Если set-аксессор не установлен, то виртуальное свойство будет доступно только для чтения; если не установлен get-аксессор, то виртуальное свойство будет доступно только для записи.
{
// Виртуальное свойство с аксессорами.
int prop
{
get const
{
return realProp;
}
set
{
// Новое значение сохраняется в скрытом свойстве.
realProp = value;
}
// Реальное свойство, хранящее соответствующее значение.
private int realProp;
}
}
Несмотря на то что у встроенных классов BGT (например, sound) используются аксессоры, для пользовательских скриптов эта возможность заблокирована.