示例#1
0
        public void StartAnimationSequence_ChairNotFound(ViveSR_Experience_Chair facingChair)//turn and look at player
        {
            ActionSequence = ViveSR_Experience_ActionSequence.CreateActionSequence(gameObject);

            ActionSequence.AddAction(() => Walk(new Vector3(facingChair.transform.position.x, 0, facingChair.transform.position.z) + facingChair.transform.forward * 2, ActionSequence.ActionFinished));
            ActionSequence.AddAction(() => Turn(-facingChair.transform.forward, ActionSequence.ActionFinished));

            ActionSequence.StartSequence();
        }
        public override void ActionToDo()
        {
            ViveSR_Experience_Demo.instance.realWorldFloor.SetActive(isOn);
            if (isOn)
            {
                //wait for tutorial segmentation handler to reaction on UI before turning it off
                this.DelayOneFrame(() =>
                {
                    ViveSR_Experience_Demo.instance.Rotator.RenderButtons(false);
                    ViveSR_Experience_Demo.instance.Tutorial.ToggleTutorial(false);
                });

                ActionSequence = ViveSR_Experience_ActionSequence.CreateActionSequence(gameObject);

                ActionSequence.AddAction(() => StaticMeshScript.LoadMesh(true, false,
                                                                         () => ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onHeadSet, "Loading Mesh...", false),
                                                                         () =>
                {
                    ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onHeadSet, "Mesh Loaded!", true, 0.5f);
                    ActionSequence.ActionFinished();
                }
                                                                         ));

                ActionSequence.AddAction(() =>
                {
                    ViveSR_Experience_Demo.instance.Rotator.RenderButtons(true);
                    ViveSR_Experience_Demo.instance.Tutorial.ToggleTutorial(true);
                    SegResults = StaticMeshScript.GetSegmentationInfo(SceneUnderstandingObjectType.CHAIR);

                    StaticMeshScript.GenerateHintLocators(SegResults);
                    LoadChair();
                    ViveSR_Experience_ControllerDelegate.touchpadDelegate += handleTouchpad_Play;
                    ActionSequence.ActionFinished();
                });
                ActionSequence.StartSequence();
            }
            else
            {
                ActionSequence.StopSequence();
                StaticMeshScript.LoadMesh(false);

                ViveSR_Experience_ControllerDelegate.touchpadDelegate -= handleTouchpad_Play;

                ViveSR_DualCameraRig.Instance.VirtualCamera.cullingMask |= (1 << LayerMask.NameToLayer("UI"));
                PortalScript.PortalManager.TurnOffCamera();

                PortalScript.PortalManager.gameObject.SetActive(false);

                StaticMeshScript.ClearHintLocators();
                npcGenerator.ClearScene();

                portalCamerasDisabledEvent.Invoke();
            }
        }
 void CheckBasicStatus()
 {
     actionSequence = ViveSR_Experience_ActionSequence.CreateActionSequence(gameObject);
     actionSequence.AddAction(() => CheckViveSRStatus(actionSequence.ActionFinished));
     actionSequence.AddAction(() => CheckCurrentHMDDevice(actionSequence.ActionFinished));
     actionSequence.AddAction(() => DetectHand(actionSequence.ActionFinished));
     actionSequence.AddAction(() => OnHandDetected(actionSequence.ActionFinished));
     actionSequence.AddAction(() => UpdateControllerRenderer(actionSequence.ActionFinished));
     actionSequence.AddAction(() => CheckCamera(actionSequence.ActionFinished));
     actionSequence.AddAction(() => Play());
     actionSequence.StartSequence();
 }
示例#4
0
        public void StartAnimationSequence_ChairFound(ViveSR_Experience_Chair chair)//go sit on chair
        {
            this.chair = chair;

            ResetCharacter();

            Vector3 FloorPosition = new Vector3(chair.transform.position.x, 0f, chair.transform.position.z) + chair.transform.forward * 0.5f;

            FloorPosition = new Vector3(FloorPosition.x, 0f, FloorPosition.z); // clear height

            ActionSequence = ViveSR_Experience_ActionSequence.CreateActionSequence(gameObject);

            //  if (Vector3.Distance(FloorPosition, NPCRef.transform.position) > 0.1f)
            //      ActionSequence.AddAction(() => Turn((FloorPosition - NPCRef.transform.position) / Vector3.Distance(FloorPosition, NPCRef.transform.position), ActionSequence.ActionFinished));
            ActionSequence.AddAction(() => Walk(FloorPosition, ActionSequence.ActionFinished));
            ActionSequence.AddAction(() => Turn(chair.transform.forward, ActionSequence.ActionFinished));
            ActionSequence.AddAction(() => Sit(chair.transform.position, ActionSequence.ActionFinished));

            ActionSequence.StartSequence();
        }