Ejemplo n.º 1
0
    private void Update()
    {
        //OPENING AND CLOSING THE RADIAL MENU//
        if (automaticMenuClosing)
        {
            if (!animating & !iconManager.loading)
            {
                if (!menuOpen)
                {
                    if (player.leftHand.currentAttachedObject == null && action_menu.GetStateDown(SteamVR_Input_Sources.LeftHand))
                    {
                        OpenMenu();
                    }
                    if (player.rightHand.currentAttachedObject == null && action_menu.GetStateDown(SteamVR_Input_Sources.RightHand))
                    {
                        OpenMenu();
                    }
                }
                else
                {
                    // if menu button is pressed or player looks away from menu
                    if (action_menu.GetStateUp(SteamVR_Input_Sources.Any) /*|| Vector3.Dot(player.hmdTransform.forward, (menuCenter.position - player.hmdTransform.position).normalized) < 0.2*/)
                    {
                        CloseMenu();
                    }
                }
            }
        }
        else
        {
            if (!animating & !iconManager.loading)
            {
                if (!menuOpen)
                {
                    if (player.leftHand.currentAttachedObject == null && action_menu.GetStateDown(SteamVR_Input_Sources.LeftHand))
                    {
                        OpenMenu();
                    }
                    if (player.rightHand.currentAttachedObject == null && action_menu.GetStateDown(SteamVR_Input_Sources.RightHand))
                    {
                        OpenMenu();
                    }
                }
                else
                {
                    // if menu button is pressed or player looks away from menu
                    if (action_menu.GetStateDown(SteamVR_Input_Sources.Any) || Vector3.Dot(player.hmdTransform.forward, (menuCenter.position - player.hmdTransform.position).normalized) < 0.2)
                    {
                        CloseMenu();
                    }
                }
            }
        }

        //MANAGING THE ITEMS INSIDE THE RADIAL MENU//

        //PISTOL GUN
        if (player.rightHand.currentAttachedObject != null)
        {
            ItemPackage currentAttachedItemPackage = sciFiPistolSpawner.GetAttachedItemPackage(righthandScript);

            if (currentAttachedItemPackage == sciFiPistolSpawner.itemPackage)                           // the item at the top of the hand's stack has an associated ItemPackage
            {
                if (sciFiPistolSpawner.takeBackItem && sciFiPistolSpawner.requireReleaseActionToReturn) // if we want to take back matching items and aren't waiting for a trigger press
                {
                    if (releaseSciFiPistol.GetStateDown(SteamVR_Input_Sources.RightHand) || releaseSciFiPistol.GetStateDown(SteamVR_Input_Sources.LeftHand))
                    {
                        sciFiPistolSpawner.TakeBackItem(righthandScript);
                    }
                }
            }
        }

        if (player.leftHand.currentAttachedObject != null)
        {
            ItemPackage currentAttachedItemPackage = sciFiPistolSpawner.GetAttachedItemPackage(lefthandScript);

            if (currentAttachedItemPackage == sciFiPistolSpawner.itemPackage)                           // the item at the top of the hand's stack has an associated ItemPackage
            {
                if (sciFiPistolSpawner.takeBackItem && sciFiPistolSpawner.requireReleaseActionToReturn) // if we want to take back matching items and aren't waiting for a trigger press
                {
                    if (releaseSciFiPistol.GetStateDown(SteamVR_Input_Sources.RightHand) || releaseSciFiPistol.GetStateDown(SteamVR_Input_Sources.LeftHand))
                    {
                        sciFiPistolSpawner.TakeBackItem(lefthandScript);
                    }
                }
            }
        }

        //FLASHLIGHT
        if (player.rightHand.currentAttachedObject != null)
        {
            ItemPackage currentAttachedItemPackage = flashlightSpawner.GetAttachedItemPackage(righthandScript);

            if (currentAttachedItemPackage == flashlightSpawner.itemPackage)                          // the item at the top of the hand's stack has an associated ItemPackage
            {
                if (flashlightSpawner.takeBackItem && flashlightSpawner.requireReleaseActionToReturn) // if we want to take back matching items and aren't waiting for a trigger press
                {
                    if (releaseFlashlight.GetStateDown(SteamVR_Input_Sources.RightHand) || releaseFlashlight.GetStateDown(SteamVR_Input_Sources.LeftHand))
                    {
                        flashlightSpawner.TakeBackItem(righthandScript);
                    }
                }
            }
        }

        if (player.leftHand.currentAttachedObject != null)
        {
            ItemPackage currentAttachedItemPackage = flashlightSpawner.GetAttachedItemPackage(lefthandScript);

            if (currentAttachedItemPackage == flashlightSpawner.itemPackage)                          // the item at the top of the hand's stack has an associated ItemPackage
            {
                if (flashlightSpawner.takeBackItem && flashlightSpawner.requireReleaseActionToReturn) // if we want to take back matching items and aren't waiting for a trigger press
                {
                    if (releaseFlashlight.GetStateDown(SteamVR_Input_Sources.RightHand) || releaseFlashlight.GetStateDown(SteamVR_Input_Sources.LeftHand))
                    {
                        flashlightSpawner.TakeBackItem(lefthandScript);
                    }
                }
            }
        }
    }