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