- Home /
Raycast feelers not reading in all four directions.
I'm working on an island generation system, where all the positions on the land will be randomly generated based off of a grid of detector blocks run through a 2D Array. On start when the blocks spawn they cast a ray downwards to check if the item they hit was a land block, or a water block, and changes it's tag accordingly. That works. Next, it's supposed to shoot a ray out forward, back, left and right, and for every ray that hits a block titled "water", it incriments a water counter. If that counter hits four it's supposed to delete the block, but if it's adjacent to land (3 or lower) it stays and turns into a source block, making a shoreline around the island.
What ACTUALLY happens. The code runs to a point, except that without fail it will at most increment the watertest int to 2.
I ran a Debug test, to have the blocks destroy at a count of 2 and found out that it made an outline, but only on the bottom left hand side, which tells me that the rays are only counting up and left across the grid. I am lost to that point.
The code is pretty straight forward I think: function WaterCheck() {
var Hit1 : RaycastHit;
var Hit2 : RaycastHit;
var Hit3 : RaycastHit;
var Hit4 : RaycastHit;
if(Physics.Raycast(transform.position, Vector3.right, Hit1))
{
if(Hit1.transform.tag == "Water")
WaterTest++;
}
if(Physics.Raycast(transform.position, Vector3.forward, Hit2))
{
if(Hit2.transform.tag == "Water")
WaterTest++;
}
if(Physics.Raycast(transform.position, Vector3.right*-1, Hit3))
{
if(Hit3.transform.tag == "Water")
WaterTest++;
}
if(Physics.Raycast(transform.position, Vector3.forward*-1, Hit4))
{
if(Hit4.transform.tag == "Water")
WaterTest++;
}
else
{
gameObject.renderer.material.color = Color.blue;
}
}
the else code is left over but it hasn't changed much I don't think.
and the destroy code is function Update() { var Wait : float; Wait += Time.deltaTime; if(1
}
again, I think it's pretty straight forward. And of course, the water check is set to 1 at start so I'm not missing the 0 starter either.
Any ideas?
Your answer
Follow this Question
Related Questions
Why Raycast is not working properly? 0 Answers
How can i get point reletive to hit.point 0 Answers
Problems with raycast 1 Answer
Debug.DrawRay Issue? 0 Answers
Raycasting plane mesh from the side 0 Answers