Wie funktionieren Erweiterungsmethoden?
Ich möchte in Unity3d eine Erweiterungsmethode für die Vector3-Klasse erstellen. Aber ich scheine es nicht ganz zu verstehen. Das habe ich:
public static class ExtensionMethods{
public static Vector3 MaxValue(this Vector3 _vec3)
{
return new Vector3(float.MaxValue,float.MaxValue,float.MaxValue);
}
}
Nun möchte ich ein @ machVector3.MaxValue
so wiefloat.MaxValue
mit dieser Codezeile:
Vector3 closestPoint = Vector3.MaxValue;
Aber dann bekomme ich diesen Fehler:
error CS0117: `UnityEngine.Vector3' does not contain a definition for `MaxValue'
Ich weiß, dass das funktionieren würde:
Vector3 closestPoint = new Vector3().MaxValue();
Aber dann erstelle ich 2 neueVector3
Instanzen. Einer imMaxValue
call und eins draussen. Ist es nicht möglich, einfach einen zu erstellen und diesen Code zu verwenden:
Vector3 closestPoint = Vector3.MaxValue;