Exemplo n.º 1
0
    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)
                {
                }
            }
        }
    }
Exemplo n.º 2
0
    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;
            }
        }
    }
Exemplo n.º 3
0
 void Awake()
 {
     if (s_Instance != null)
     {
         Destroy(gameObject);
     }
     s_Instance = this;
 }