void OnOkClicked()
 {
     if (currentSelecting)
     {
         GlobalEventManager.SendEvent(okButtonEvent);
     }
 }
Beispiel #2
0
 public void SwitchToGuideMode()
 {
     UISystem.Singleton.SetContent("SW_ReenterModeSelecting", false);
     sceneReentranceCommand = "GuideMode";
     GlobalEventManager.SendEvent("NewModeSelected");
     Invoke("ReloadCurrentScene", 0.8f);
 }
Beispiel #3
0
    // Update is called once per frame
    void Update()
    {
        foreach (var e in inputEvents)
        {
            switch (e.actionType)
            {
            case VRActionType.TriggerDown:
                if ((!VRPlayer.Instance.IsUsingSimulator && mInteractor.VRInput != null) ? mInteractor.VRInput.GetPressDown(EVRButtonId.k_EButton_SteamVR_Trigger) : Input.GetMouseButtonDown(0))
                {
                    GlobalEventManager.SendEvent(e.actionEvent);
                }
                break;

            case VRActionType.MenuDown:
                if ((!VRPlayer.Instance.IsUsingSimulator && mInteractor.VRInput != null) ? mInteractor.VRInput.GetPressDown(EVRButtonId.k_EButton_ApplicationMenu) : Input.GetKeyDown(KeyCode.M))
                {
                    GlobalEventManager.SendEvent(e.actionEvent);
                }
                break;

            case VRActionType.PadDown:
                if ((!VRPlayer.Instance.IsUsingSimulator && mInteractor.VRInput != null) ? mInteractor.VRInput.GetPressDown(EVRButtonId.k_EButton_SteamVR_Touchpad) : Input.GetMouseButtonDown(1))
                {
                    GlobalEventManager.SendEvent(e.actionEvent);
                }
                break;

            default: break;
            }
        }
    }
Beispiel #4
0
    /// <summary>
    /// Mouse event processing, will be override for new requirement
    /// </summary>
    /// <param name="eventType"></param>
    void OnCameraCharacterEvent(CameraCharacter.InteractionEventType eventType)
    {
        switch (eventType)
        {
        case CameraCharacter.InteractionEventType.MouseHoverOut:
            mouseHovered = false;
            break;

        case CameraCharacter.InteractionEventType.MouseHoverIn:
            mouseHovered = true;
            break;

        case CameraCharacter.InteractionEventType.MouseClickDown:
            if (manager == null)
            {
                break;
            }
            if (locked == false && manager.status == BlockCombinationStatus.Divide)
            {
                GlobalEventManager.SendEvent("BlockClicked-" + blockName);
                manager.SetFocusBlockIndex(blockName);
                manager.ForwardTransform();
            }
            else if (manager.status == BlockCombinationStatus.Combine || manager.status == BlockCombinationStatus.CombineInsidePreview)
            {
                if (manager.CommandQueueLenght == 0)
                {
                    manager.ForwardTransform();
                }
            }
            break;

        default: break;
        }
    }
 bool OnJadeReachCore()
 {
     //if (jadeFrameStatus != InlayFrameStatus.Focused)
     //    return false;
     GlobalEventManager.SendEvent(inlayEvent);
     jadeFrameStatus = InlayFrameStatus.Inlayed;
     return(true);
 }
Beispiel #6
0
 public void OnTeleport()
 {
     if (GetComponent <PlayMakerFSM>() != null)
     {
         GetComponent <PlayMakerFSM>().SendEvent("Trigger");
     }
     GlobalEventManager.SendEvent("VRPlayer.Teleport@" + GetComponentInChildren <TextMesh>().text.Trim());
 }
 void OnIndicatorClick()
 {
     if (locked == false && !manager.IsTransforming && CameraCharacter.Singleton.allowInteraction)
     {
         hasClicked = true;
         GlobalEventManager.SendEvent("CellClicked-" + cellName + "-" + parentBlock.name);
         manager.ForwardTransform(roomViewCenter.position, roomViewCenter.rotation, panoramaContent);
     }
 }
    /// <summary>
    /// Transport body but keep base root in a plane
    /// </summary>
    /// <param name="targetPosition"></param>
    public void TransportBody(Vector3 targetPosition)
    {
        Vector3 curPos = Head.position;

        curPos.y         = 0;
        targetPosition.y = 0;
        Vector3 diff = targetPosition - curPos;

        Body.position += diff;
        GlobalEventManager.SendEvent("internal_VRPlayer.Repositioned");
    }
Beispiel #9
0
    // Update is called once per frame
    void Update()
    {
        if (canvas.enabled == false)
        {
            return;
        }
        if (selectedColor == SelectedColor.None)
        {
            return;
        }
        if (redFinished && goldFinished)
        {
            return;
        }
        if (Inside())
        {
            Vector3 v = InputPlatform.Singleton.GetMoveVector();
            float   m = v.magnitude * InputPlatform.Singleton.ScreenSizeRatio * 0.0001f;
            switch (selectedColor)
            {
            case SelectedColor.Red:
                if (redFinished)
                {
                    break;
                }
                redImage.fillAmount += m;
                if (redImage.fillAmount >= 1f)
                {
                    redFinished = true;
                }
                break;

            case SelectedColor.Gold:
                if (goldFinished)
                {
                    break;
                }
                goldImage.fillAmount += m;
                if (goldImage.fillAmount >= 1f)
                {
                    goldFinished = true;
                }
                break;

            default: break;
            }

            if (redFinished && goldFinished)
            {
                GlobalEventManager.SendEvent(finishEvent);
            }
        }
    }
 void OnStopInteracting(VRInteractor interactor)
 {
     if (mInteractor != interactor)
     {
         return;
     }
     mInteractor = null;
     if (!string.IsNullOrEmpty(dropEvent))
     {
         GlobalEventManager.SendEvent(dropEvent);
     }
 }
    void OnClickHandler(CameraCharacter.InteractionEventType eventType)
    {
        if (locked || !ActiveInCurrentMode)
        {
            return;
        }

        if (hintType == HintType.Indicator && !IndicatorStatus && detectableRange != 0f)
        {
            return;
        }


        switch (eventType)
        {
        case CameraCharacter.InteractionEventType.MouseClickDown:
            GlobalEventManager.SendEvent(clickEvent);
            if (!hasClicked)
            {
                hasClicked = true;
                if (hintType == HintType.Indicator && indicatorImage != null)
                {
                    indicatorImage.GetComponentInChildren <PlayMakerFSM>().enabled = false;
                    indicatorImage.rectTransform.localScale = new Vector3(1f, 1f, 1f);
                }
            }
            if (focusWhenClicked)
            {
                CameraCharacter.Singleton.RotateTo(transform);
            }
            if (UIFsm)
            {
                UIFsm.SendEvent("FadeIn");
            }
            if (killWhenClicked)
            {
                Destroy(gameObject);
            }

            break;

        case CameraCharacter.InteractionEventType.MouseHoverIn:
            //SetHighlight();
            break;

        case CameraCharacter.InteractionEventType.MouseHoverOut:
            SetNormal();
            break;

        default: break;
        }
    }
    void OnStartInteracting(VRInteractor interactor)
    {
        if (mInteractor != null)
        {
            return;
        }

        relativePosition = interactor.acquirePoint.InverseTransformPoint(transform.position);
        relativeRotation = Quaternion.Inverse(interactor.acquirePoint.rotation) * transform.rotation;
        mInteractor      = interactor;
        if (!string.IsNullOrEmpty(pickEvent))
        {
            GlobalEventManager.SendEvent(pickEvent);
        }
    }
Beispiel #13
0
 void SetNextSideAsCurrentSide()
 {
     currentPeelingSideIndex++;
     if (currentPeelingSideIndex == 1)
     {
         GlobalEventManager.SendEvent("BambooFirstPieceSlided");
     }
     if (currentPeelingSideIndex >= allPeelingSides.Count)
     {
         GlobalEventManager.SendEvent(finishEvent);
         finished    = true;
         bodyFreezed = true;
     }
     else
     {
         bodyFreezed = false;
     }
 }
Beispiel #14
0
    // Update is called once per frame
    void Update()
    {
        if (!ready)
        {
            return;
        }

        if (finished)
        {
            return;
        }

        if (!bodyFreezed)
        {
            var   p      = InputPlatform.Singleton.GetMoveVector() * InputPlatform.Singleton.ScreenSizeRatio;
            var   dx     = p.x < 0 ? p.x : 0;
            float deltaX = dx * 0.2f;
            //float deltaY = p.y * 0.2f;
            Vector3 eulerAngles = transform.rotation.eulerAngles;
            eulerAngles       += new Vector3(0, -deltaX, 0);
            transform.rotation = Quaternion.Euler(eulerAngles);

            Transform curForward = CurrentSide.slideMainDirection;
            float     dot        = Vector3.Dot(curForward.forward, -CameraCharacter.Singleton.ownedCamera.transform.forward);
            float     cross      = Vector3.Cross(curForward.forward, -CameraCharacter.Singleton.ownedCamera.transform.forward).y;

            if (dot > 0.9f || cross < 0f)
            {
                Vector3 lookDir = -CameraCharacter.Singleton.ownedCamera.transform.forward;

                Quaternion targetRotation = Quaternion.LookRotation(lookDir, transform.up);
                Quaternion deltaRotation  = targetRotation * Quaternion.Inverse(curForward.rotation);
                transform.rotation = deltaRotation * transform.rotation;
                ActivateCurrentSide();
                GlobalEventManager.SendEvent("BambooPositionDone");
            }
        }
    }
    public void SwitchSelectingItem(SelectorUIItem newItem)
    {
        if (newItem == currentSelecting)
        {
            return;
        }

        if (currentSelecting != null)
        {
            currentSelecting.DeSelect();
        }

        currentSelecting = newItem;
        if (newItem != null)
        {
            if (okButtonImage)
            {
                var c = okButtonImage.color;
                c.a = 1f;
                okButtonImage.color = c;
            }
            GlobalEventManager.SendEvent("ImageSelected-" + newItem.imageName);
        }
    }
Beispiel #16
0
    IEnumerator CheckVRDeviceRoutine()
    {
        if (playMode == PlayMode.Auto)
        {
            yield return(new WaitForSeconds(0.8f));

            if (!IsVRReadyAndConnected())
            {
                isUsingSimulator = true;
                Destroy(VRBodyRig.gameObject);
                GlobalEventManager.SendEvent("VRPlayer.PCBodyReady");
                GameRunDataHolder.SetType("InteractingSource", (int)InteractingSource.Mouse);
            }
            else
            {
                isUsingSimulator = false;
                Destroy(PCSimulatorRig.gameObject);
                GlobalEventManager.SendEvent("VRPlayer.VRBodyReady");
                GameRunDataHolder.SetType("InteractingSource", (int)InteractingSource.VRJoystick);
            }
        }
        else if (playMode == PlayMode.PCSimulator)
        {
            isUsingSimulator = true;
            Destroy(VRBodyRig.gameObject);
            GlobalEventManager.SendEvent("VRPlayer.PCBodyReady");
            GameRunDataHolder.SetType("InteractingSource", (int)InteractingSource.Mouse);
        }
        else
        {
            isUsingSimulator = false;
            Destroy(PCSimulatorRig.gameObject);
            GlobalEventManager.SendEvent("VRPlayer.VRBodyReady");
            GameRunDataHolder.SetType("InteractingSource", (int)InteractingSource.VRJoystick);
        }
    }
 void OnCommand()
 {
     GlobalEventManager.SendEvent(gestureEvent);
 }
 void OnReachTargetProgress()
 {
     UISystem.Singleton.SetContent(progressUILocator, false);
     uiOn = false;
     GlobalEventManager.SendEvent(reachMaxProgressEvent);
 }
Beispiel #19
0
    void UpdateState()
    {
        Vector3?tp  = InputPlatform.Singleton.GetTouchPoint();
        Ray?    ray = null;

        if (tp != null)
        {
            ray = Camera.main.ScreenPointToRay(tp.Value);
        }
        //update state
        switch (lidState)
        {
        case InlayItemState.Free:
            if (ray != null)
            {
                RaycastHit hitInfo;
                if (Physics.Raycast(ray.Value, out hitInfo, 30f))
                {
                    if (hitInfo.collider == GetComponent <Collider>())
                    {
                        lidState = InlayItemState.Holding;
                        float rayDis;
                        constraintPlane.Raycast(ray.Value, out rayDis);
                        holdPosOffset = ray.Value.GetPoint(rayDis) - transform.position;
                    }
                }
            }
            break;

        case InlayItemState.Holding:
            highLighted = false;
            if (Vector3.Distance(targetPoint.position, transform.position) < targetJudgeRadius)
            {
                lidState = InlayItemState.ReachTarget;
                GlobalEventManager.SendEvent(reachTargetEvent);
                transform.position = targetPoint.position;
                break;
            }
            if (ray == null)
            {
                lidState = InlayItemState.Free;
            }
            break;

        case InlayItemState.ReachTarget:
            break;

        default: break;
        }

        //process based on state
        if (lidState == InlayItemState.Holding)
        {
            float rayDis;
            constraintPlane.Raycast(ray.Value, out rayDis);
            Vector3 tPosition = ray.Value.GetPoint(rayDis) - holdPosOffset;
            if (Vector3.Distance(tPosition, moveCenter) > constraintRange)
            {
                Vector3 dir = tPosition - moveCenter;
                transform.position = moveCenter + dir.normalized * constraintRange;
            }
            else
            {
                transform.position = tPosition;
            }
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (WorkingTeleporter != null && WorkingTeleporter != this)
        {
            return;
        }

        if (!transportingEnabled || inTransporting)
        {
            if (LineDrawer)
            {
                LineDrawer.drawLine = false;
            }
            return;
        }

        if (LineDrawer)
        {
            if (GetTeleportingCommand())
            {
                WorkingTeleporter = this;
                if (!LineDrawer.drawLine)//Enable teleporting predicting
                {
                    GlobalEventManager.SendEvent("VRPlayer.BeginTeleportingPredict");
                    LineDrawer.drawLine = true;
                }

                //Teleporting Area Update
                TeleportingArea ta = null;
                if (LineDrawer.HitCollider != null)
                {
                    ta = LineDrawer.HitCollider.GetComponent <TeleportingArea>();
                }

                AnticipateHitPoint = LineDrawer.AnticipateHitPoint;//Acquire anticipated hit point of predicting line,not the final hit point
                SwitchHitArea(ta);

                //Telepoint Update
                if (AnticipateHitPoint != null)
                {
                    TeleportingPoint tp = TeleportingPoint.FindClosestTelepoints(AnticipateHitPoint.Value);//Check if a telepoint is near the anicipate hit point
                    SwitchHitPoint(tp);
                }
                else
                {
                    SwitchHitPoint(null);
                }
            }
            else
            {
                if (LineDrawer.drawLine)
                {
                    AnticipateHitPoint  = null;
                    LineDrawer.drawLine = false;
                    if (hitArea != null)
                    {
                        hitArea.OnTeleport();
                    }

                    if (hitTelepoint != null)
                    {
                        hitTelepoint.OnTeleport();
                    }

                    SwitchHitArea(null);
                    SwitchHitPoint(null);

                    GlobalEventManager.SendEvent("VRPlayer.StopTeleportingPredict");
                    WorkingTeleporter = null;
                    if (LineDrawer.Status == HittingStatus.HitTeleportingArea || LineDrawer.Status == HittingStatus.HitModifiedTarget)
                    {
                        StartBodyTransporting();
                        GlobalEventManager.SendEvent("TransportBody");
                    }
                }
            }
        }
    }
 public void ConfirmUI()
 {
     GlobalEventManager.SendEvent("HintUI.Confirmed");
     HideUI();
 }
 public override void OnEnter()
 {
     GlobalEventManager.SendEvent(eventName.Value);
     Finish();
 }
Beispiel #23
0
 public void SendEvent(string evtName)
 {
     GlobalEventManager.SendEvent(evtName);
 }
Beispiel #24
0
 public void SendDrawUpClickEvent()
 {
     GlobalEventManager.SendEvent(GlobalEventManager.DrawUpClicked);
 }
Beispiel #25
0
 //for Button UI component,because GlobalEventManager is not in scene
 #region Events sending
 public void SendBackEvent()
 {
     GlobalEventManager.SendEvent(GlobalEventManager.Back);
 }
Beispiel #26
0
 void OnSlideDone()
 {
     GlobalEventManager.SendEvent(slideDoneEvent);
     readyToInteract = false;
 }
    void UpdateState()
    {
        switch (embroideryStatus)
        {
        case EmbroideryStatus.Hide:
            if (Vector3.Distance(transform.position, hidePoint.position) < 0.01f)
            {
                transform.position = hidePoint.position;
                foreach (var s in targetString)
                {
                    if (s != null && s.gameObject.activeInHierarchy)
                    {
                        s.gameObject.SetActive(false);
                    }
                }
            }
            else
            {
                transform.position = Vector3.Lerp(transform.position, hidePoint.position, Time.deltaTime * lerpSpeed);
                transform.rotation = Quaternion.Lerp(transform.rotation, hidePoint.rotation, Time.deltaTime * lerpSpeed);
            }
            break;

        case EmbroideryStatus.Display:
            if (Vector3.Distance(transform.position, displayPoint.position) < 0.01f)
            {
                transform.position = displayPoint.position;

                foreach (var s in targetString)
                {
                    if (s != null && !s.gameObject.activeInHierarchy)
                    {
                        s.SetMoveCenter(s.transform.position);
                        s.transform.position += Vector3.up * 10f;
                        s.gameObject.SetActive(true);
                    }
                }
            }
            else
            {
                transform.position = Vector3.Lerp(transform.position, displayPoint.position, Time.deltaTime * lerpSpeed);
            }

            var inlayCount = 0;
            foreach (var c in colorLayers)
            {
                if (c.inlayFinished)
                {
                    inlayCount++;
                }
            }

            if (inlayCount >= colorLayers.Count)
            {
                GlobalEventManager.SendEvent(inlayEvent);
                embroideryStatus = EmbroideryStatus.Inlayed;
            }
            break;

        case EmbroideryStatus.Inlayed:
            break;

        case EmbroideryStatus.Focus:
            Vector3 viewPoint = CameraCharacter.Singleton.ownedCamera.transform.position + CameraCharacter.Singleton.transform.forward * focusDistance;
            if (Vector3.Distance(transform.position, viewPoint) < 0.01f)
            {
                var   p      = InputPlatform.Singleton.GetMoveVector() * InputPlatform.Singleton.ScreenSizeRatio;
                float deltaX = p.x * 0.2f;
                //float deltaY = p.y * 0.2f;
                Vector3 eulerAngles = transform.rotation.eulerAngles;
                eulerAngles       += new Vector3(0, -deltaX, 0);
                transform.rotation = Quaternion.Euler(eulerAngles);
            }
            else
            {
                transform.position = Vector3.Lerp(transform.position, viewPoint, Time.deltaTime * lerpSpeed);
            }
            break;

        case EmbroideryStatus.HideAfterInlay:
            if (Vector3.Distance(transform.position, hidePoint.position) < 0.01f)
            {
                foreach (var s in targetString)
                {
                    Destroy(s.gameObject);
                }
                Destroy(gameObject);
            }
            else
            {
                transform.position = Vector3.Lerp(transform.position, hidePoint.position, Time.deltaTime * lerpSpeed);
                transform.rotation = Quaternion.Lerp(transform.rotation, hidePoint.rotation, Time.deltaTime * lerpSpeed);
            }

            break;

        default: break;
        }
    }
    void ProcessForBackCommand()
    {
        if (commandQueue.Count == 0 || IsTransforming)
        {
            return;
        }
        var oldStatus = status;
        var command   = commandQueue.Dequeue();

        currentHoldingPanorama = command.panoramaBlock;
        if (command.isForwardCommand)
        {
            switch (status)
            {
            case BlockCombinationStatus.None:
                status = BlockCombinationStatus.Combine;
                break;

            case BlockCombinationStatus.Combine:
                if (CameraCharacter.Singleton.GameModeC == GameMode.GuideMode)
                {
                    backButton.SetActive(true);
                }
                GlobalEventManager.SendEvent(GlobalEventManager.RoofRemoved);
                status = BlockCombinationStatus.CombineInsidePreview;
                break;

            case BlockCombinationStatus.CombineInsidePreview:
                status = BlockCombinationStatus.Divide;
                GlobalEventManager.SendEvent(GlobalEventManager.BlockDivide);
                break;

            case BlockCombinationStatus.Divide:
                status = BlockCombinationStatus.FocusOnOneBlock;
                break;

            case BlockCombinationStatus.FocusOnOneBlock:
                status = BlockCombinationStatus.Indoor;
                break;

            case BlockCombinationStatus.Indoor:
                return;

            case BlockCombinationStatus.SpecialScene:
                return;

            default:
                break;
            }
            MoveSubBlocksByStatus(oldStatus, status);
            CameraCharacter.Singleton.PushView(GenerateViewParameterByStatus(command.position, command.rotation, command.panoramaBlock));
            if (command.panoramaBlock)
            {
                command.panoramaBlock.DownloadAssetBundle();
            }
        }
        else
        {
            switch (status)
            {
            case BlockCombinationStatus.Combine:
                if (CameraCharacter.Singleton.GameModeC == GameMode.FreeMode)
                {
                    GlobalEventManager.SendEvent("ShowModeSelecting");
                }
                break;

            case BlockCombinationStatus.CombineInsidePreview:
                GlobalEventManager.SendEvent(GlobalEventManager.BlockCombine);
                if (CameraCharacter.Singleton.GameModeC == GameMode.GuideMode)
                {
                    backButton.SetActive(false);
                }
                status = BlockCombinationStatus.Combine;
                break;

            case BlockCombinationStatus.Divide:
                status = BlockCombinationStatus.CombineInsidePreview;
                break;

            case BlockCombinationStatus.FocusOnOneBlock:
                GlobalEventManager.SendEvent(GlobalEventManager.BlockDivide);
                status = BlockCombinationStatus.Divide;
                break;

            case BlockCombinationStatus.Indoor:
                status = BlockCombinationStatus.FocusOnOneBlock;
                break;

            case BlockCombinationStatus.SpecialScene:
                return;

            default:
                break;
            }
            MoveSubBlocksByStatus(oldStatus, status);
            CameraCharacter.Singleton.PopView();
            if (command.panoramaBlock)
            {
                command.panoramaBlock.DownloadAssetBundle();
            }
        }
    }