Esempio n. 1
0
    //Cast của Start và End

    public bool Get_LineCast_Check_LayerMask()
    //LineCast from Start to End
    {
        Class_Eye cs_Eye = new Class_Eye();

        if (cs_Eye.Get_LineCast_Check(t_Start.position, t_End.position, l_Tarket))
        {
            //Always Hit if Tarket on LineCast
            return(true);
        }
        return(false);
    }
Esempio n. 2
0
    /// <summary>
    /// Check Head
    /// </summary>
    /// <returns></returns>
    public bool Get_CheckHead()
    {
        Class_Vector cl_Vector = new Class_Vector();

        Class_Eye cs_Eye = new Class_Eye();

        return(cs_Eye.Get_BoxCast_Dir_Check(
                   transform.position,
                   v3_HeadCast,
                   Vector3.up,
                   cl_Vector.Get_Rot_TransformToVector(transform.rotation),
                   f_HeadCast,
                   l_GroundCheck));
    }
Esempio n. 3
0
    public bool Get_SphereCast_Check_LayerMask()
    //SphereCast from Start to End
    {
        Class_Eye cs_Eye = new Class_Eye();

        if (cs_Eye.Get_SphereCast_Vec_Check(t_Start.position, f_Sphere, t_End.position, Get_Distance_Transform(), l_Barrier))
        {
            //Hit Barrier
            return(false);
        }
        else
        if (cs_Eye.Get_SphereCast_Vec_Check(t_Start.position, f_Sphere, t_End.position, Get_Distance_Transform(), l_Tarket))
        {
            //Hit Tarket
            return(true);
        }
        return(false);
    }
Esempio n. 4
0
    //Gizmos

    private void OnDrawGizmos()
    {
        if (i_Cast == 0 || t_Start == null || t_End == null)
        {
            return;
        }

        Class_Vector cl_Vector = new Class_Vector();
        Class_Eye    cs_Eye    = new Class_Eye();

        switch (i_Cast)
        {
        case 1:
            //LineCast
            Gizmos.color = Color.black;
            Gizmos.DrawWireSphere(
                t_End.position,
                0.1f);
            //End Point is Black
            if (cs_Eye.Get_LineCast_Check(
                    t_Start.position,
                    t_End.position,
                    l_Tarket))
            {
                //Hit Tarket
                RaycastHit ray_Hit = cs_Eye.Get_LineCast_RaycastHit(
                    t_Start.position,
                    t_End.position,
                    l_Tarket);
                Gizmos.color = Color.red;
                //Red is Hit
                Gizmos.DrawLine(
                    t_Start.position,
                    t_End.position);
            }
            else
            {
                Gizmos.color = Color.white;
                //Start Point is White, if Hit is Red
                Gizmos.DrawLine(
                    t_Start.position,
                    t_End.position);
            }
            Gizmos.DrawWireSphere(t_Start.position, f_Sphere / 2);
            break;

        case 2:
            //RayCast
            Gizmos.color = Color.black;
            Gizmos.DrawWireSphere(
                t_End.position,
                0.1f);
            if (cs_Eye.Get_RayCast_Vec_Check(
                    t_Start.position,
                    t_End.position,
                    (b_EndIsPos) ? Get_Distance_Transform() : f_Distance,
                    l_Barrier))
            {
                //Hit Barrier
                RaycastHit ray_Hit = cs_Eye.Get_RayCast_Vec_RaycastHit(
                    t_Start.position,
                    t_End.position,
                    (b_EndIsPos) ? Get_Distance_Transform() : f_Distance,
                    l_Barrier);
                Gizmos.color = Color.white;
                Gizmos.DrawRay(
                    t_Start.position,
                    (t_End.position - t_Start.position).normalized * ray_Hit.distance);
            }
            else
            if (cs_Eye.Get_RayCast_Vec_Check(
                    t_Start.position,
                    t_End.position,
                    (b_EndIsPos) ? Get_Distance_Transform() : f_Distance,
                    l_Tarket))
            {
                //Hit Tarket
                RaycastHit ray_Hit = cs_Eye.Get_RayCast_Vec_RaycastHit(
                    t_Start.position,
                    t_End.position,
                    (b_EndIsPos) ? Get_Distance_Transform() : f_Distance,
                    l_Tarket);
                Gizmos.color = Color.red;
                Gizmos.DrawRay(
                    t_Start.position,
                    (t_End.position - t_Start.position).normalized * ray_Hit.distance);
            }
            else
            {
                Gizmos.color = Color.white;
                Gizmos.DrawRay(
                    t_Start.position,
                    (t_End.position - t_Start.position).normalized * ((b_EndIsPos) ? Get_Distance_Transform() : f_Distance));
            }
            Gizmos.DrawWireSphere(t_Start.position, f_Sphere / 2);
            break;

        case 3:
            //BoxCast
            Gizmos.color = Color.black;
            Gizmos.DrawWireSphere(
                t_End.position,
                f_Sphere / 2);
            if (cs_Eye.Get_BoxCast_Vec_Check(
                    t_Start.position,
                    v3_Square,
                    t_End.position,
                    v3_Square_Rot,
                    (b_EndIsPos) ? Get_Distance_Transform() : f_Distance,
                    l_Barrier))
            {
                //If Hit
                RaycastHit ray_Hit = cs_Eye.Get_BoxCast_Vec_RaycastHit(
                    t_Start.position,
                    v3_Square,
                    t_End.position,
                    v3_Square_Rot,
                    (b_EndIsPos) ? Get_Distance_Transform() : f_Distance,
                    l_Barrier);
                Gizmos.color = Color.white;
                Gizmos.DrawLine(
                    t_Start.position,
                    t_Start.position + (t_End.position - t_Start.position).normalized * ray_Hit.distance);
                Gizmos.DrawWireCube(
                    t_Start.position + (t_End.position - t_Start.position).normalized * ray_Hit.distance,
                    v3_Square);
            }
            else
            if (cs_Eye.Get_BoxCast_Vec_Check(
                    t_Start.position,
                    v3_Square,
                    t_End.position,
                    v3_Square_Rot,
                    (b_EndIsPos) ? Get_Distance_Transform() : f_Distance,
                    l_Tarket))
            {
                //If Hit
                RaycastHit ray_Hit = cs_Eye.Get_BoxCast_Vec_RaycastHit(
                    t_Start.position,
                    v3_Square,
                    t_End.position,
                    v3_Square_Rot,
                    (b_EndIsPos) ? Get_Distance_Transform() : f_Distance,
                    l_Tarket);
                Gizmos.color = Color.red;
                Gizmos.DrawLine(
                    t_Start.position,
                    t_Start.position + (t_End.position - t_Start.position).normalized * ray_Hit.distance);
                Gizmos.DrawWireCube(
                    t_Start.position + (t_End.position - t_Start.position).normalized * ray_Hit.distance,
                    v3_Square);
            }
            else
            {
                Gizmos.color = Color.white;
                Gizmos.DrawLine(
                    t_Start.position,
                    t_Start.position + (t_End.position - t_Start.position).normalized * ((b_EndIsPos) ? Get_Distance_Transform() : f_Distance));
                Gizmos.DrawWireCube(
                    t_Start.position + (t_End.position - t_Start.position).normalized * f_Distance,
                    v3_Square);
            }
            Gizmos.DrawWireCube(
                t_Start.position,
                v3_Square);
            break;

        case 4:
            //SphereCast
            Gizmos.color = Color.black;
            Gizmos.DrawWireSphere(
                t_End.position,
                f_Sphere / 2);
            if (cs_Eye.Get_SphereCast_Vec_Check(
                    t_Start.position,
                    f_Sphere,
                    t_End.position,
                    (b_EndIsPos) ? Get_Distance_Transform() : f_Distance,
                    l_Barrier))
            {
                //If Hit
                RaycastHit ray_Hit = cs_Eye.Get_SphereCast_Vec_RaycastHit(
                    t_Start.position,
                    f_Sphere,
                    t_End.position,
                    (b_EndIsPos) ? Get_Distance_Transform() : f_Distance,
                    l_Barrier);
                Gizmos.color = Color.white;
                Gizmos.DrawLine(
                    t_Start.position,
                    t_Start.position + (t_End.position - t_Start.position).normalized * ray_Hit.distance);
                Gizmos.DrawWireSphere(
                    t_Start.position + (t_End.position - t_Start.position).normalized * ray_Hit.distance,
                    f_Sphere / 2);
            }
            else
            if (cs_Eye.Get_SphereCast_Vec_Check(
                    t_Start.position,
                    f_Sphere,
                    t_End.position,
                    (b_EndIsPos) ? Get_Distance_Transform() : f_Distance,
                    l_Tarket))
            {
                //If Hit
                RaycastHit ray_Hit = cs_Eye.Get_SphereCast_Vec_RaycastHit(
                    t_Start.position,
                    f_Sphere,
                    t_End.position,
                    (b_EndIsPos) ? Get_Distance_Transform() : f_Distance,
                    l_Tarket);
                Gizmos.color = Color.red;
                Gizmos.DrawLine(
                    t_Start.position,
                    t_Start.position + (t_End.position - t_Start.position).normalized * ray_Hit.distance);
                Gizmos.DrawWireSphere(
                    t_Start.position + (t_End.position - t_Start.position).normalized * ray_Hit.distance,
                    f_Sphere / 2);
            }
            else
            {
                Gizmos.color = Color.white;
                Gizmos.DrawLine(
                    t_Start.position,
                    t_Start.position + (t_End.position - t_Start.position).normalized * ((b_EndIsPos) ? Get_Distance_Transform() : f_Distance));
                Gizmos.DrawWireSphere(
                    t_Start.position + (t_End.position - t_Start.position).normalized * ((b_EndIsPos) ? Get_Distance_Transform() : f_Distance),
                    f_Sphere / 2);
            }
            Gizmos.DrawWireSphere(
                t_Start.position,
                f_Sphere / 2);
            break;
        }
    }
Esempio n. 5
0
    //Eye

    private RaycastHit Get_Eye(int i_CastIndex)
    //Get EyeCast (0: Centre; +1: Top; -1: Bot)
    {
        List <RaycastHit> l_RaycastHit = new List <RaycastHit>();

        Class_Vector cl_Vector = new Class_Vector();

        Class_Eye cs_Eye = new Class_Eye();
        //Use this Script to use all Methode of Eye
        Rigid3D_Component cs_Rigid = GetComponent <Rigid3D_Component>();

        //Use this Script to get "Rotation" of this Object

        if (!b_XZ)
        {
            //LineCast
            if (i_Cast == 1)
            {
                if (cs_Eye.Get_LineCast_Check(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance), l_Barrier))
                {
                    //Always Hit Tarket on Line
                    return(cs_Eye.Get_LineCast_RaycastHit(
                               transform.position + v3_OffPos,
                               transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                               l_Barrier));
                }
            }
            //RayCast
            else
            if (i_Cast == 2)
            {
                if (cs_Eye.Get_RayCast_Vec_Check(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance), f_Distance, l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    return(cs_Eye.Get_RayCast_Vec_RaycastHit(
                               transform.position + v3_OffPos,
                               transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                               f_Distance,
                               l_Barrier));
                }
            }
            //BoxCast
            else
            if (i_Cast == 3)
            {
                if (cs_Eye.Get_BoxCast_Vec_Check(
                        transform.position + v3_OffPos,
                        v3_Square,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        new Vector3(0, 0, 0),
                        f_Distance,
                        l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    return(cs_Eye.Get_BoxCast_Vec_RaycastHit(
                               transform.position + v3_OffPos,
                               v3_Square,
                               transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                               new Vector3(0, 0, 0),
                               f_Distance,
                               l_Barrier));
                }
            }
            //SphereCast
            else
            if (i_Cast == 4)
            {
                if (cs_Eye.Get_SphereCast_Vec_Check(
                        transform.position + v3_OffPos,
                        f_Sphere,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        f_Distance,
                        l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    return(cs_Eye.Get_SphereCast_Vec_RaycastHit(
                               transform.position + v3_OffPos,
                               f_Sphere,
                               transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                               f_Distance,
                               l_Barrier));
                }
            }
        }
        else
        if (b_XZ)
        {
            //LineCast
            if (i_Cast == 1)
            {
                if (cs_Eye.Get_LineCast_Check(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance), l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    return(cs_Eye.Get_LineCast_RaycastHit(
                               transform.position + v3_OffPos, transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                               l_Barrier));
                }
            }
            //RayCast
            else
            if (i_Cast == 2)
            {
                if (cs_Eye.Get_RayCast_Vec_Check(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance), f_Distance, l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    return(cs_Eye.Get_RayCast_Vec_RaycastHit(
                               transform.position + v3_OffPos, transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                               f_Distance,
                               l_Barrier));
                }
            }
            //BoxCast
            else
            if (i_Cast == 3)
            {
                if (cs_Eye.Get_BoxCast_Vec_Check(
                        transform.position + v3_OffPos,
                        v3_Square,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        new Vector3(0, 0, 0),
                        f_Distance,
                        l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    return(cs_Eye.Get_BoxCast_Vec_RaycastHit(
                               transform.position + v3_OffPos,
                               v3_Square,
                               transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                               new Vector3(0, 0, 0),
                               f_Distance,
                               l_Barrier));
                }
            }
            //SphereCast
            else
            if (i_Cast == 4)
            {
                if (cs_Eye.Get_SphereCast_Vec_Check(
                        transform.position + v3_OffPos,
                        f_Sphere,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        f_Distance,
                        l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    return(cs_Eye.Get_SphereCast_Vec_RaycastHit(
                               transform.position + v3_OffPos,
                               f_Sphere,
                               transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                               f_Distance,
                               l_Barrier));
                }
            }
        }

        return(new RaycastHit());
    }
Esempio n. 6
0
    //=== Gizmos

    private void Set_Gizmos(int i_CastIndex)
    {
        Class_Vector cl_Vector = new Class_Vector();

        Class_Eye         cs_Eye   = new Class_Eye();
        Rigid3D_Component cs_Rigid = GetComponent <Rigid3D_Component>();

        if (!b_XZ)
        {
            //LineCast
            if (i_Cast == 1)
            {
                if (cs_Eye.Get_LineCast_Check(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance), l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    RaycastHit ray_Hit = cs_Eye.Get_LineCast_RaycastHit(
                        transform.position + v3_OffPos, transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        l_Barrier);
                    Gizmos.color = Color.red;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance));
                }
                else
                {
                    Gizmos.color = Color.green;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance));
                }
            }
            //RayCast
            else
            if (i_Cast == 2)
            {
                if (cs_Eye.Get_RayCast_Vec_Check(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        f_Distance,
                        l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    RaycastHit ray_Hit = cs_Eye.Get_RayCast_Vec_RaycastHit(
                        transform.position + v3_OffPos, transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        f_Distance,
                        l_Barrier);
                    Gizmos.color = Color.red;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, ray_Hit.distance));
                }
                else
                {
                    Gizmos.color = Color.green;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance));
                }
            }
            //BoxCast
            else
            if (i_Cast == 3)
            {
                if (cs_Eye.Get_BoxCast_Vec_Check(
                        transform.position + v3_OffPos,
                        v3_Square,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        new Vector3(0, 0, 0),
                        f_Distance,
                        l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    RaycastHit ray_Hit = cs_Eye.Get_BoxCast_Vec_RaycastHit(
                        transform.position + v3_OffPos,
                        v3_Square,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        new Vector3(0, 0, 0),
                        f_Distance,
                        l_Barrier);
                    Gizmos.color = Color.red;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, ray_Hit.distance));
                    Gizmos.DrawWireCube(
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, ray_Hit.distance),
                        v3_Square);
                }
                else
                {
                    Gizmos.color = Color.green;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance));
                    Gizmos.DrawWireCube(
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        v3_Square);
                }
            }
            //SphereCast
            else
            if (i_Cast == 4)
            {
                if (cs_Eye.Get_SphereCast_Vec_Check(
                        transform.position + v3_OffPos,
                        f_Sphere,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        f_Distance,
                        l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    RaycastHit ray_Hit = cs_Eye.Get_SphereCast_Vec_RaycastHit(
                        transform.position + v3_OffPos,
                        f_Sphere,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        f_Distance,
                        l_Barrier);
                    Gizmos.color = Color.red;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, ray_Hit.distance));
                    Gizmos.DrawWireSphere(
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, ray_Hit.distance),
                        f_Sphere / 2);
                }
                else
                {
                    Gizmos.color = Color.green;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance));
                    Gizmos.DrawWireSphere(
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XY(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        f_Sphere / 2);
                }
            }
        }
        else
        if (b_XZ)
        {
            //LineCast
            if (i_Cast == 1)
            {
                if (cs_Eye.Get_LineCast_Check(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance), l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    RaycastHit ray_Hit = cs_Eye.Get_LineCast_RaycastHit(
                        transform.position + v3_OffPos, transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        l_Barrier);
                    Gizmos.color = Color.red;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance));
                }
                else
                {
                    Gizmos.color = Color.green;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance));
                }
            }
            //RayCast
            else
            if (i_Cast == 2)
            {
                if (cs_Eye.Get_RayCast_Vec_Check(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance), f_Distance, l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    RaycastHit ray_Hit = cs_Eye.Get_RayCast_Vec_RaycastHit(
                        transform.position + v3_OffPos, transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        f_Distance,
                        l_Barrier);
                    Gizmos.color = Color.red;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, ray_Hit.distance));
                }
                else
                {
                    Gizmos.color = Color.green;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance));
                }
            }
            //BoxCast
            else
            if (i_Cast == 3)
            {
                if (cs_Eye.Get_BoxCast_Vec_Check(
                        transform.position + v3_OffPos,
                        v3_Square,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        new Vector3(0, 0, 0),
                        f_Distance,
                        l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    RaycastHit ray_Hit = cs_Eye.Get_BoxCast_Vec_RaycastHit(
                        transform.position + v3_OffPos,
                        v3_Square,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        new Vector3(0, 0, 0),
                        f_Distance,
                        l_Barrier);
                    Gizmos.color = Color.red;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, ray_Hit.distance));
                    Gizmos.DrawWireCube(
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, ray_Hit.distance),
                        v3_Square);
                }
                else
                {
                    Gizmos.color = Color.green;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance));
                    Gizmos.DrawWireCube(
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        v3_Square);
                }
            }
            //SphereCast
            else
            if (i_Cast == 4)
            {
                if (cs_Eye.Get_SphereCast_Vec_Check(
                        transform.position + v3_OffPos,
                        f_Sphere,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        f_Distance,
                        l_Barrier))
                {
                    //Always Hit Tarket if not have Barrier
                    RaycastHit ray_Hit = cs_Eye.Get_SphereCast_Vec_RaycastHit(
                        transform.position + v3_OffPos,
                        f_Sphere,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        f_Distance,
                        l_Barrier);
                    Gizmos.color = Color.red;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, ray_Hit.distance));
                    Gizmos.DrawWireSphere(
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, ray_Hit.distance),
                        f_Sphere / 2);
                }
                else
                {
                    Gizmos.color = Color.green;
                    Gizmos.DrawLine(
                        transform.position + v3_OffPos,
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance));
                    Gizmos.DrawWireSphere(
                        transform.position + v3_OffPos + cl_Vector.Get_DegToVector_XZ(-cs_Rigid.Get_Rotation_XZ() + i_CastIndex * f_OffFan, f_Distance),
                        f_Sphere / 2);
                }
            }
        }
    }