public bool Get_RayCast_Check_LayerMask() //Raycast from Start to End { Class_Eye cs_Eye = new Class_Eye(); if (cs_Eye.Get_RayCast_Vec_Check(t_Start.position, t_End.position, Get_Distance_Transform(), l_Barrier)) { //Hit Barrier return(false); } else if (cs_Eye.Get_RayCast_Vec_Check(t_Start.position, t_End.position, Get_Distance_Transform(), l_Tarket)) { //Hit Tarket return(true); } return(false); }
//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()); }
//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; } }
//=== 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); } } } }