Esempio n. 1
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. 2
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);
                }
            }
        }
    }