Example #1
0
 void Update()
 {
     if (flag)
     {
         //Debug.Log(StateManger.GetInstance().FsmEye.y);
         Debug.Log("Listen");
              //状態更新
         //StateManger.GetInstance().UpdateState();
         // 入力1: transform.position;
         Vector3 EyePos = LookTarget.transform.position;
         // 入力2: TobiiAPI.GetGazePoint
         Vector3 gazePointInWorld = cam.ScreenToWorldPoint(new Vector3(StateManger.GetInstance().FsmEye.x, StateManger.GetInstance().FsmEye.y, cam.nearClipPlane));
         // EyeballCenterからCameraに向かうdirectional vector
         Vector3 EyeCamPos  = Vector3.Normalize(Campos - EyePos);
         Vector3 EyeGazePos = Vector3.Normalize(gazePointInWorld - EyePos);
         // cross productの計算
         Vector3 axis = Vector3.Cross(EyeCamPos, EyeGazePos);
         axis = Vector3.Normalize(axis);
         // inner productの計算
         float Angle = Mathf.Acos(Vector3.Dot(EyeCamPos, EyeGazePos));
         float angle = Angle * Mathf.Rad2Deg;
         // 出力: transform.localRotation
         transform.rotation = Quaternion.AngleAxis(angle * 40, axis);
     }
 }
Example #2
0
 void Awake()
 {
     // 状態登録
     StateManger.GetInstance().Region("A", new AState());
     StateManger.GetInstance().Region("B", new BState());
     StateManger.GetInstance().Region("C", new CState());
     StateManger.GetInstance().Region("D", new DState());
     StateManger.GetInstance().Region("E", new EState());
          // デフォルト状態設定
     StateManger.GetInstance().SetDefat("C");
 }
Example #3
0
 public override void UpdateState()
 {
     Debug.Log("B状態更新");
     if (Probability(30))
     {
         StateManger.GetInstance().ChangeState("A");
     }
     else if (Probability(30))
     {
         StateManger.GetInstance().ChangeState("C");
     }
     else if (Probability(40))
     {
         StateManger.GetInstance().ChangeState("B");
     }
     else if (Probability(0))
     {
         StateManger.GetInstance().ChangeState("D");
     }
     else if (Probability(0))
     {
         StateManger.GetInstance().ChangeState("E");
     }
 }