- edited description
Odd behaviour when invoking setter-style methods
Hi guys, I've found some odd behaviour regarding invoking setter style methods.
using Sirenix.OdinInspector; public class OdinBugDemo : SerializedMonoBehaviour { [Button, PropertyOrder(int.MinValue)] public void SetObject(SomeType newObject) { someObject = newObject; } public SomeType someObject; [Button, PropertyOrder(int.MaxValue)] public void SetObject2(SomeType newObject) { someObject = newObject; } } public class SomeType { public int a = 6; }
There are two different odd behaviours here. Both come into play when there is a method that sets a field. Different oddities occour depending on whether the method is drawn before or after the field. Fig. 1 shows the inspector for the above class.
Method before the field:
If I set the parameter of the method to a new SomeType and invoke the method, then the field breaks and shows an error (fig. 2). If I then set the parameter of the method to null, the field displays the correct value (fig. 3).
Method after the field:
If I set the parameter of the method to a new SomeType and invoke the method, then the parameter references the field (maybe? I don't really know), and the parameter can't be changed anymore (fig. 4).
Unity version: 2018.2.11f1
Odin version: 2.0.6
Windows 10
Comments (1)
-
reporter - Log in to comment