UsedImplicitly
Verbessert das Annotieren von Unity-Lebenszyklusmethoden mit dem Attribut die Lesbarkeit Ihres Codes?
Zum Beispiel:
public class Example : MonoBehaviour
{
[UsedImplicitly]
private void Awake()
{
DoSomething();
}
private void DoSomething()
{
// ...
}
}
Dieser Blog-Beitrag über "Strukturieren Ihrer Einheit MonoBehaviours" schlägt diesen Ansatz als nützliche Konvention vor.
- Kommentieren Sie alle Unity-Lebenszyklusmethoden (Start, Awake, Update, OnDestroy usw.), Ereignismethoden und andere Funktionen, die implizit (oder automatisch) in Ihrem Code aufgerufen werden, mit dem Attribut [UsedImplicitly]. Obwohl dieses Attribut in der UnityEngine.dll enthalten ist, wird es von ReSharper verwendet, um Vorschläge zur Codebereinigung für Methoden zu deaktivieren, auf die scheinbar nicht verwiesen wird. Dies erleichtert auch das Lesen des Codes für Personen, die mit Unity und Ihrer Codebasis noch nicht vertraut sind, insbesondere für Ereignisse, auf die über den Inspektor verwiesen wird.
(Hinweis: Ich glaube nicht, dass ReSharper Vorschläge zur Codebereinigung für scheinbar nicht referenzierte Unity-Lebenszyklusmethoden anzeigt, sodass dies möglicherweise veraltete Ratschläge sind.)
Ich stimme dem obigen Beitrag zu, dass er für diejenigen hilfreich sein könnte, die neu in Unity sind. Ich denke auch , es könnte nützlich sein , diese zu beschriften Unity Lifecycle - Funktionen , die nicht so häufig verwendet werden , wie Awake
, Start
und Update
. Aber ich frage mich, ob dies tatsächlich eine gute Konvention für "sauberen Code" ist oder ob nur Rauschen die Lesbarkeit beeinträchtigt.