//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 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); } } } }