2016-11-11 2 views
1

Сценарии обычно записываются так, чтобы публичные поля были выставлены в Инспекторе; есть ли способ использовать свойства вместо этого?В Unity я могу открыть C# * Properties * в окне Inspector?

// instead of this 
public GameObject wrongBall; 

// is there some way to do this (to trigger an event in the setter, for instance) 
// and have it show up in the inspector window? 
public GameObject WrongBallProperty 
{ 
    get; 
    set; 
} 
+0

Невероятно, как Unity по-прежнему не имеет поддержки для этого после стольких версий. –

+0

@RayKoopa проблема заключается в сериализации. Легче выполнять сериализацию по полям, чем свойства без каких-либо проблем. –

ответ

0

Сорт.

Вы не можете непосредственно использовать свойство в инспекторе, но вы можете создать свою собственность с полем подложки:

public GameObject WrongBallProperty { 
    get { return this.wrongBallProperty; } 
    set { //do whatever } 
} 

[SerializeField] 
private gameObject wrongBallProperty; 

Это будет отображать wrongBallProperty в инспекторе, и позволяют делать все, что логика вам нужно в get и set. См. SerializeField reference для получения дополнительной информации.