- Home /
Raycastall not casting and return null array
Hello fellow unity game devs, it seems like just when I feel I have grasped majority of the concepts in unity a problem comes around to remind me that its just a pipe dream.
My method is quite simple. It receives the Gameobject from a list using foreach, and a ray is created the origin being the transform position of the game object. The destination being the game object on the campaign map. Yet for some reason Raycastall(ray) returns no raycasthit objects to the raycasthit[] rayhitarray. I've tried using Debug.drawray() and i've done multiple test. It seems the ray simply will not draw from the Gameobject to the other Gameobject.
Any suggestions will be well appreciated!
void CreateMission(int windowproviencedisplayindex)
{
List<Vector3> localveclist = new List<Vector3>();
int counter = 0;
//assigns a specifed amount of regiments to a mission
foreach(GameObject regimentprefab in prefablist)
{
print ("running create mission prefab scan");
//TODO
//AI that are the closest to the provience that was selected will be assigned the mission.
//Ray holds the assigned regiments vector 3 data and the provience data
Ray raypath = new Ray(regimentprefab.transform.position,WindowProvienceDisplayList[windowproviencedisplayindex].transform.position);
//raycast debug
Debug.DrawRay(regimentprefab.transform.position,WindowProvienceDisplayList[windowproviencedisplayindex].transform.position);
RaycastHit[] rayhitarray = UnityEngine.Physics.RaycastAll(raypath);//vector3 information will be stored in array
foreach(RaycastHit hit in rayhitarray)//delete when bugged fixed
{
print ("Raycast in raycastarray dectected");
if(hit.collider == null)
{
print("rayhit list is empty");
}
else
{
Debug.Log (string.Format("Tranform Name: {0}. Distance: {1}",hit.transform.name,hit.distance));
}
}
rayhitarray = SorthitArray(rayhitarray);//sorts raycasthit objs by there distance least to greatest.
foreach(RaycastHit hit in rayhitarray)
{
localveclist.Add(hit.transform.position);
}
VecBattleLocations.Add(localveclist);//local list is referenced in vec battle locations,regiments will access this list based on order assigned.
if(counter == 5)
{
break;
}
}
}
Your answer
![](https://koobas.hobune.stream/wayback/20220613113653im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
[C#] Physics.Raycast returns an array and can't access the length 2 Answers
Bullets sometimes don't work 1 Answer