Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
137 stars 2 forks source link

float2 and float3 inputs in the settings UI behave strangely #2096

Open Nytra opened 4 months ago

Nytra commented 4 months ago

Describe the bug?

When trying to edit a float2 setting such as "Framing viewport position" in the Camera category, when pressing backspace while the field has a decimal value such as 0.2, it will remove the entire decimal .2 part leaving it as just 0.

https://github.com/Yellow-Dog-Man/Resonite-Issues/assets/14206961/0c507008-0367-4c6c-94b5-25142ac97d10

To Reproduce

Go to the Camera category (Requires having spawned the "Camera/Streaming" Panel from the Dash facet in the home screen) and try to edit the float2 setting "Framing viewport position".

Alternatively grab the saved facet version of this settings from this folder: resrec:///U-Nytra/R-50D438DDBADED33AA8771D577F5702F729D0AD1B10F49E6CACCD114F90383D75

Expected behavior

When pressing backspace in the field it behaves like one would expect and doesn't remove the decimal part of the number.

Screenshots

2024-05-25 19 45 11

Resonite Version Number

Beta 2024.5.24.202

What Platforms does this occur on?

Windows

What headset if any do you use?

Quest 3

Log Files

DESKTOP-H976HO2 - 2024.5.24.202 - 2024-05-25 20_40_27.log

Additional Context

I think this is a problem with the PrimitiveMemberEditor and/or FloatTextEditorParser components.

Reporters

Nytra (Discord: nytra)

Nytra commented 4 months ago

@shiftyscales In retrospect, this might be better suited as a content issue

shiftyscales commented 4 months ago

I concur. Relabelling.

RyuviTheViali commented 4 months ago

Looking further into this, I'm not entirely sure yet why this is happening. I've disabled continuous updated on all things related to these fields and they still behave strangely.

I made a basic replication case using the same components as being used in the settings UI (PrimitiveMemberEditor) and the strange behavior still exists, whether or not continuous is enabled on the editor - This is something I can work around, bit may not be a thing the content team can adjust directly.

shiftyscales commented 4 months ago

I see- do you believe this is indeed a bug in code then, @RyuviTheViali? If so, it can be relabelled back to such.

RyuviTheViali commented 4 months ago

From what I can see I feel it may be a bug, but it's strange that it doesn't behave this way in, say, an inspector. However I have noticed in inspectors that the PrimitiveMemberEditor's TextDrive field will dynamically assign and un-assign the given text drive when editing said field, where as the PrimitiveMemberEditor used on the settings doesn't do this. I'm only using an editor here by the way as there is no other good method to edit compound value types directly in components right now,

marsmaantje commented 4 months ago

However I have noticed in inspectors that the PrimitiveMemberEditor's TextDrive field will dynamically assign and un-assign the given text drive when editing said field, where as the PrimitiveMemberEditor used on the settings doesn't do this.

The reason this happens is because the EditingStarted/Changed/Finished SyncDelegates are linked to the PrimitiveMemberEditor in the inspector version, which is missing in the Settings version.

Unfortunately the only way to link those manually right now is either to rip an already linked version out of an inspector, or use a mod to expose the Sync Methods of the PrimitiveMemberEditor and then link them to the TextEditor. When this is set up you dont need a FloatTextEditorParser either since the PrimitiveMemberEditor parses it already

(mod used: https://github.com/art0007i/ShowDelegates)

Note: I noticed this issue also applies to float3 fields (eg. Devices -> Leap Motion -> Hand tracking offset)

shiftyscales commented 4 months ago

Seeking input on this issue from either @ProbablePrime or @Frooxius - it sounds like we may need coding assistance to progress with this issue.

ProbablePrime commented 4 months ago

I haven't had a chance to look into this, but I can take a look when I can.