public WorldSpaceFoodData(FoodData foodData, Vector3 centerWorldPos,
                           Vector3 topLeftWorldPosition,
                           Vector3 topRightWorldPosition,
                           Vector3 bottomLeftWorldPosition,
                           Vector3 bottomRightWorldPosition)
 {
     this.CenterWorldPosition      = centerWorldPos;
     this.FoodData                 = foodData;
     this.TopLeftWorldPosition     = topLeftWorldPosition;
     this.TopRightWorldPosition    = topRightWorldPosition;
     this.BottomLeftWorldPosition  = bottomLeftWorldPosition;
     this.BottomRightWorldPosition = bottomRightWorldPosition;
     this.FoodData.Calorie         =
         CalorieCalculater.CalculateCalorie(foodData.Class, RectAreaValue, foodData.PercentageOfMealArea);
 }
        /// <summary>
        /// 5秒ごとに発火される
        /// 5秒ごとにカロリーと食事の位置を認識するので、その情報を表示する。
        /// 表示するとき、前のフレームに残っている連中と比較して、距離が5cm以内なら同じ食事と判断して、食事の表示を書き換える。
        /// 前のフレームに残っている
        /// </summary>
        public void TakePhoto()
        {
            Vector3 cameraPos = CameraCache.Main.transform.position;

            _colorCameraObject?.TakePhoto(async(camera2WorkdMatrix, projectionMatrix, imageRawdata, height, width) =>
            {
                //ここでカメラから実際のオブジェクトの対応を取る。
                List <FoodData> foodDataList = await _objectDetector.DetectObject(imageRawdata, height, width);
                foodDataList = FoodData.CalculateCenterPosition(foodDataList);

                var currentWorldSpaceFoodData = new List <WorldSpaceFoodData>(4);

                //FindHandPositionOnImage(camera2WorkdMatrix, projectionMatrix, height,width);

                //今画面に映っている食事の位置が取得できたやつらを保存。
                foreach (var foodData in foodDataList)
                {
                    //var outはUnityがコンパイルしてくれないので。世知辛い。
                    Vector3 foodCenterPosOnWorldCordinate;

                    //中心に対応があったら端の4点も対応を取って
                    if (CoordinateTransfer.ImagePos2WorldPos(foodData.CenterX, foodData.CenterY, height, width, projectionMatrix,
                                                             camera2WorkdMatrix, cameraPos, out foodCenterPosOnWorldCordinate))
                    {
                        Vector3 topLeft, topRight, bottomLeft, bottomRight;

                        CoordinateTransfer.ImagePos2WorldPos(foodData.Left, foodData.Top, height, width, projectionMatrix,
                                                             camera2WorkdMatrix, cameraPos, out topLeft);
                        CoordinateTransfer.ImagePos2WorldPos(foodData.Right, foodData.Top, height, width, projectionMatrix,
                                                             camera2WorkdMatrix, cameraPos, out topRight);
                        CoordinateTransfer.ImagePos2WorldPos(foodData.Left, foodData.Bottom, height, width, projectionMatrix,
                                                             camera2WorkdMatrix, cameraPos, out bottomLeft);
                        CoordinateTransfer.ImagePos2WorldPos(foodData.Right, foodData.Bottom, height, width, projectionMatrix,
                                                             camera2WorkdMatrix, cameraPos, out bottomRight);

                        currentWorldSpaceFoodData.Add(new WorldSpaceFoodData(foodData, foodCenterPosOnWorldCordinate, topLeft, topRight, bottomLeft, bottomRight));
                    }
                }
                _foodDataViewManager.ReDrawFoodData(currentWorldSpaceFoodData);
            });

            //_depthCameraObject?.TakePhoto(async (camera2WorkdMatrix, projectionMatrix, imageRawdata, height, width) =>
            //{
            //    await _objectDetector.DetectObject(imageRawdata, height, width);
            //});
        }