Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"VRCFury Support" Allowing the MemoryOptimizer to be used as Component. #24

Open
wants to merge 16 commits into
base: main
Choose a base branch
from

Conversation

PenguiniVogel
Copy link

@PenguiniVogel PenguiniVogel commented Oct 2, 2024

"VRCFury Support" is in quotes here as it does enable support for it, but the component also works on its own.
Also addresses #21

What was added:

A new Component "MemoryOptimizerComponent"
This component gets placed on the same object where the VRCAvatarDescriptor exists, and only one can exist at a time on each Avatar.

The component resolves the parameters on the Avatar and tries to resolve VRCFury ones as well (using reflection magic).
Currently supported are:

  • Toggles
  • FullController
  • VRCFuryHapticSocket

You can configure the component using the same EditorWindow you use when installing the system, but here comes the major difference (and advantage imo) to using the MemoryOptimizer as component:
The component gets resolved during the build process of the Avatar and installs the MemoryOptimizer into the uploading clone in a non-destructive manner, none of the original files get edited.

If more information is required, or there is open questions, feel free to ask here or on Discord.

- constants are now all together in one file
- some functions have moved to be available everywhere
- component now lists issues it may have such as compability with UnlimitedParameters
Fix:
- if system was already installed, it was not checked during build
- parameters and fx layer are now copied on the uploading clone to avoid breaking assets
- comparison checks now use pre-calculated hash codes to be faster

and many more things i can't remember / don't wanna list.
Mention-worthy:
- MemoryOptimizer-EditorWindow will attempt to connect to a component if present on the selected avatar
- MemoryOptimizer-EditorWindow cannot be opened more than once now since component editing is active-instance based.
- a bunch of performance fixes in certain areas
- MemoryOptimizerComponent no longer loads duplicates of VRCFury-Components
- added proper validation for the pipeline since we unhook VRCFury.
- optimized the lookup speed in the component by using a dictionary to check.
- parameters can be saved as orphans in the event they lose their original link, and will automatically be re-linked, can also be cleared in the settings tab.
- GeneratedAssets now get written in the Temp/ directory of the Packages instead of the Assets/, as people tend to dislike clutter in their Assets/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant