private void FindHandPositionOnImage(Matrix4x4 camera2WorkdMatrix, Matrix4x4 projectionMatrix, int height, int width)
        {
            int x = 0, y = 0;

            if (CoordinateTransfer.WorldPos2ImagePos(_handPlotObj.transform.position, projectionMatrix,
                                                     camera2WorkdMatrix, height, width, ref x, ref y))
            {
                Debug.Log($"handPosition on image : {x}, {y}");
            }
        }
        /// <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);
            //});
        }