Skip to content

Releases: MyroG/Portable-Panel

2.0.1 Fixed two bugs

02 Apr 02:26

Choose a tag to compare

This version fixes two bugs :

  • The throwable panel can be thrown again
  • The "position" constrain setting now constrains the position properly when the player rotates

2.0 Added more settings

13 Nov 21:04

Choose a tag to compare

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 AndroidPanelModule now 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

03 Sep 17:01

Choose a tag to compare

  • 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

02 Sep 20:54

Choose a tag to compare

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

01 Apr 20:11

Choose a tag to compare

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 Grabbable parameter to Is Pickupable, this bool value is now private, but can be externally toggled with the SetPickupable() function, setting that boolean to false also 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

23 Feb 13:00

Choose a tag to compare

Just fixes a small issue with the rigidbody example when the panel was set to "respawn"

QOL improvements, and a few minor bug fixes

12 Sep 16:39
ee5f67b

Choose a tag to compare

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

18 Aug 02:02
c84024e

Choose a tag to compare

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 SetRespawnPoint and RespawnPanel, 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

06 Aug 13:07

Choose a tag to compare

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 Hold for 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

31 Jul 17:18

Choose a tag to compare

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()