Releases: MyroG/Portable-Panel
2.0.1 Fixed two bugs
2.0 Added more settings
A big thanks to @jamestruhlar for his PR, this is what he added :
- Added a new "Constraint" setting, which defines how the panel behaves relative to the player :
• None : The panel stays where it got placed in world space.
• Position : The panel sits in the player's playspace and moves with them.
• View : The panel stays in front of the player's face like a HUD - Added a new "Require Stopped" setting : If enabled, the panel can only be opened while the player isn't moving too fast. For instance, this can be useful in swimming worlds to prevent people from accidentally opening the panel while swimming.
- Each setting now has a tooltip explaining what each setting does
- API changes : New public methods to set the constraint mode
Additionally, I made those changes :
- The
AndroidPanelModulenow works on IOS also, but I didn't renamed the prefab to make the updating steps easier (no need to delete older prefabs,, importing the unitypackage is good enough) - Fixed an issue of the "ThrowablePanel" prefab spinning after respawning when the closing behavior was set to "Respawn"
- Fixed an issue that prevented the panel from opening on newer Vive controllers.
Small patch of 1.4
- In one-handed mode, Grab+Trigger is now enforced to ensure players don't accidentally open the menu while grabbing or interacting with an object
- The menu now closes if the size is below 0.24, before that distance was set to 0.15, which I felt too small
- Throwable panel prefab : the BoxCollider on the pickup component is now a trigger in case the layer of the pickup gets accidentally changed to another layer, this is to prevent players colliding with it.
More accessible : Added one-handed mode and more
If you're upgrading from 1.3 or below, some folders got renamed and some files got moved around.
- The panel can now be opened in one handed mode : If the user has only one controller, then the panel can still be opened.
- Added a tutorial prefab you can drag and drop into your world for your players, the tutorial automatically adapts depending on the platform and controls
- To make the installation easier, the "AndroidModule" prefab is now included by default, so if you already included that prefab in your scene, you can remove it.
- Added "Set owner on pickup", it is recommended to turn that setting on if the position of your panel is synced.
- Added
_TogglePickupable()API function
QOL improvements, easier setup, fix for Vive controllers
If you're migrating from an older version of this prefab, make sure to read the new installation steps, especially if you're using the VRCPickup component.
The installation is a lot easier now, just use one of the template panel provided in the MyroP/PortablePanel folder.
Patch note :
- Fixed an issue related to Vive controllers, Vive players can now more easily interact with the panel. (Before, using the trigger button would trigger the "Grab" event, so it happened that Vive players would accidentally scale the panel while trying to interact with it)
- Renamed the
Grabbableparameter toIs Pickupable, this bool value is now private, but can be externally toggled with theSetPickupable()function, setting that boolean tofalsealso makes VRCPickups not grabbable anymore, so it should be set to "On" in most cases. - While scaling down the panel, the panel now closes if the distance between both hands is below 15cm, that value is stored in a new const variable
CLOSING_HAND_DISTANCE - Panels that respawned can now be grabbed, and thrown away again, which will trigger the "disintegration" effect.
Small bug fix
Just fixes a small issue with the rigidbody example when the panel was set to "respawn"
QOL improvements, and a few minor bug fixes
Make sure to check the updated README file for additional informations
AliceD (https://github.com/4liceD) noticed that certain prefabs attached to the portable panel could break when the panel gets hidden from the player way too early in the loading screen. To fix that issue, I added a parameter "DelayInitialisation", if set to true, the panel will be initialized later, which ensures that all prefabs attached to the panel get initialized properly (at least in most cases, there might be rare edge cases where that might not work).
I also added two constant variables :
- MAX_DISTANCE_HAND_GESTURE : Max distance between both hands to trigger a panel opening, it is set at 30cm, so to open the panel the distance between your hands should not exceed 30 centimeters. thanks to https://twitter.com/KawausoDashi for this suggestion.
- TIME_INTERVAL_HAND_GESTURE : To open the panel and to scale it, the right and left hand gestures should occur with a time gap of less than the time given by that constant, it is set to 0.15 second.
I removed the parameter ScaleAndDistanceRelativeToAvatarScale, because I couldn't think off a single use case where that parameter should be set to false, the panel just works so much better if it is set to true, especially since it is now possible to have 5m tall avatars in most worlds.
Lastly, I fixed an issue where "isPanelOpen" would not always return the right value.
v1.3.0 : Android update + More settings
Two major updates :
-
I added more settings, the main one would be the "CloseBehaviour" setting, let's say you don't want to close the panel when the player walks way, and you want to respawn the panel instead, you can do it now by just setting "CloseBehaviour" to "Respawn". In addition, I added more public methods like
SetRespawnPointandRespawnPanel, so you can move the spawn point to a different place if you need to. -
Android update !
The new update adds a prefab you can drag and drop into your scene, it add a button only Android users can see, which allows them to open the panel by tapping on the button
The avatar scaling update
This package now only works with VRC SDK 3.2.2 or above.
I added additional parameters, the main one would be the avatar scaling parameter.
Let's say the panel closes itself if the panel is 2 meters away from the player, which can be configured with the Max Distance Before Closing The Panel setting, what if the player is actually 5m tall? In that case the "2 meters" distance might not be enough. That's why I added a new parameter Scale And Distance Relative To Avatar Scale, if that setting is turned on, "2 meters" would apply to avatars that measure 1m80, but for 5m tall avatars that distance will increase, and the panel will disappear after around 5.5 meters (5.5 x 2 / 1.80). I would highly recommend to turn that setting on if you allow avatars of any size.
Other changes :
- Added a new gesture mode "Both", in this mode players need to use both grab and trigger buttons to open, scale or grab the panel.
- Added a new parameter
Tab on Holdfor desktop players, this setting should be turned off if the panel includes an input field, otherwise players won't be able to interact with it. - Added an event
virtual OnStart(), which can be used for initialization.
As always, I am open for feedbacks.
v1.1
This release introduces a few improvements
- More events that can be overridden from the base class
- Panel can be closed or opened from an external script, in PC and VR.
- Fixed issue where the panel can get accidentally opened in VR.
- Added a second Prefab example where the panel can be thrown away.
Certain events got renamed and return a bool, see README for additional details:
void OnPanelOpen()->bool OnPanelOpening()void OnPanelClose()->bool OnPanelClosing()