void CheckDownBlocking()
        {
            foreach (GameObject o in control.COLLISION_SPHERE_DATA.BottomSpheres)
            {
                GameObject blockingObj = CollisionDetection.GetCollidingObject(control, o, Vector3.down, 0.1f,
                                                                               ref control.BLOCKING_DATA.RaycastContact);

                if (blockingObj != null)
                {
                    AddBlockingObjToDic(DownBlockingObjs, o, blockingObj);
                }
                else
                {
                    RemoveBlockingObjFromDic(DownBlockingObjs, o);
                }
            }
        }
        void CheckUpBlocking()
        {
            foreach (GameObject o in control.COLLISION_SPHERE_DATA.UpSpheres)
            {
                GameObject blockingObj = CollisionDetection.GetCollidingObject(control, o, this.transform.up, 0.3f,
                                                                               ref control.BLOCKING_DATA.RaycastContact);

                if (blockingObj != null)
                {
                    AddBlockingObjToDic(UpBlockingObjs, o, blockingObj);
                }
                else
                {
                    RemoveBlockingObjFromDic(UpBlockingObjs, o);
                }
            }
        }
        void CheckFrontBlocking()
        {
            if (!control.animationProgress.ForwardIsReversed())
            {
                FrontSpheresArray = control.COLLISION_SPHERE_DATA.FrontSpheres;
                DirBlock          = 1f;

                foreach (GameObject s in control.COLLISION_SPHERE_DATA.BackSpheres)
                {
                    if (FrontBlockingObjs.ContainsKey(s))
                    {
                        FrontBlockingObjs.Remove(s);
                    }
                }
            }
            else
            {
                FrontSpheresArray = control.COLLISION_SPHERE_DATA.BackSpheres;
                DirBlock          = -1f;

                foreach (GameObject s in control.COLLISION_SPHERE_DATA.FrontSpheres)
                {
                    if (FrontBlockingObjs.ContainsKey(s))
                    {
                        FrontBlockingObjs.Remove(s);
                    }
                }
            }

            for (int i = 0; i < FrontSpheresArray.Length; i++)
            {
                GameObject blockingObj = CollisionDetection.GetCollidingObject(
                    control, FrontSpheresArray[i], this.transform.forward * DirBlock,
                    control.animationProgress.LatestMoveForward.BlockDistance,
                    ref control.BLOCKING_DATA.RaycastContact);

                if (blockingObj != null)
                {
                    AddBlockingObjToDic(FrontBlockingObjs, FrontSpheresArray[i], blockingObj);
                }
                else
                {
                    RemoveBlockingObjFromDic(FrontBlockingObjs, FrontSpheresArray[i]);
                }
            }
        }