/// <summary> Creates a new instance of the drawer or returns a reusable instance from the pool. </summary> /// <param name="value"> The initial cached value of the drawer. </param> /// <param name="memberInfo"> LinkedMemberInfo for the class member that the created drawer represents. Can be null. </param> /// <param name="parent"> The parent drawer of the created drawer. Can be null. </param> /// <param name="label"> The prefix label. </param> /// <param name="setReadOnly"> True if drawer should be read only. </param> /// <returns> The drawer instance, ready to be used. </returns> public static Size3DDrawer Create(Size3D value, LinkedMemberInfo memberInfo, IParentDrawer parent, GUIContent label, bool setReadOnly) { Size3DDrawer result; if (!DrawerPool.TryGet(out result)) { result = new Size3DDrawer(); } result.Setup(value, DrawerUtility.GetType(memberInfo, value), memberInfo, parent, label, setReadOnly); result.LateSetup(); return(result); }
/// <inheritdoc /> protected override IDrawer BuildResizeField() { var resizerMemberInfo = ResizerMemberInfo; return(Size3DDrawer.Create(size.IsValid() ? size : Size3D.Zero, resizerMemberInfo, this, GUIContentPool.Create("Sizes"), ReadOnly || resizerMemberInfo == null)); }