private void SetFlickDirection(Vector2 flick_vec) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) if (!(flick_vec == Vector2.get_zero())) { float num = Mathf.Atan2(flick_vec.y, flick_vec.x); float num2 = Mathf.Abs(num); if (num > 0f) { if (num2 < QUARTER_PI) { flickDirection = FLICK_DIRECTION.RIGHT; } else if (num2 > THREE_QUARTER_PI) { flickDirection = FLICK_DIRECTION.LEFT; } else { flickDirection = FLICK_DIRECTION.FRONT; } } else if (num2 < QUARTER_PI) { flickDirection = FLICK_DIRECTION.RIGHT; } else if (num2 > THREE_QUARTER_PI) { flickDirection = FLICK_DIRECTION.LEFT; } else { flickDirection = FLICK_DIRECTION.REAR; } } }
/// <summary> /// ユーザーの入力待ち /// </summary> private void WaitInput() { if (Input.GetMouseButtonDown(0)) { pointDownPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); pointDownTime = Time.time; } if (Input.GetMouseButtonUp(0)) { pointUpPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); pointUpTime = Time.time; var flickdistance = Vector3.Distance(pointDownPosition, pointUpPosition); //Debug.Log("flickdistance " + flickdistance); if (flickdistance > FLICK_DISTANCE && (pointUpTime - pointDownTime) < FLICK_DECISION_TIME) { //横方向へのフリックの場合 if ((Mathf.Abs(pointUpPosition.x - pointDownPosition.x)) >= (Mathf.Abs(pointUpPosition.y - pointDownPosition.y))) { state = STATE.FLICK_ANIMATION; if ((pointUpPosition.x - pointDownPosition.x) < 0) { flickkDirection = FLICK_DIRECTION.LEFT; } else if ((pointUpPosition.x - pointDownPosition.x) > 0) { flickkDirection = FLICK_DIRECTION.RIGHT; } Debug.Log("フリック判定 " + flickkDirection); } } } }
/// <summary> /// フリックの方向ステータスを設定 /// </summary> /// <param name="state"></param> public void SetFlickkDirection(FLICK_DIRECTION flickkDirection) { this.flickkDirection = flickkDirection; }