private void Update() { if (Stage == SpatialTaskStage.Question) { timer += Time.deltaTime; if (InputManager.GetSpatialConfirmButton()) { // calculate error Transform controller = ExperimentManager.ControllerStick; Vector3 pointing = controller.forward; Vector3 groundTruth = startPos - ExperimentManager.PlayerController.position; angleError = Vector3.Angle(pointing, groundTruth); angleErrorOnPlane = Vector3.Angle(new Vector3(pointing.x, 0, pointing.z), new Vector3(groundTruth.x, 0, groundTruth.z)); taskPosition = startPos.ToString(); playerPosition = ExperimentManager.PlayerController.position.ToString(); controllerDirection = pointing.ToString(); Stage = SpatialTaskStage.Closed; bool result = SpatialTaskManager.FinishTask(TaskIndex); if (!result) { } } } }
public void Init(Transform playerController) { builder.Init(playerController); // builder for (int i = 0; i < subTaskManagers.Count; i++) { switch (subTaskManagers[i].TaskType) { case TaskTypeEnum.Collect: subTaskManagers[i].Init(builder.CollectTaskPosList); break; case TaskTypeEnum.Spatial: SpatialTaskManager spManager = subTaskManagers[i] as SpatialTaskManager; spManager.Init(builder.SpatialInfoList); break; case TaskTypeEnum.Discomfort: subTaskManagers[i].Init(); break; default: break; } } }
void Awake() { if (s_Instance != null) { Destroy(gameObject); } s_Instance = this; }