제작 한 현재 설정을 게임 오브젝트합니다.레이 캐스트 감지
목표는 뒤쪽 격자의 각 타일에서 레이 캐스트를 생성하는 것입니다. 그러면 레이의 앞부분에 뭔가가 있는지 감지하고 타일 태그를 변경합니다.
int tileNumber = 0;
for (float y = 0; y > mapHeight; y--)
{
for (float x = 0; x < mapWidth; x++)
{
tile.GetComponent<Renderer>().enabled = true;
GameObject go = Instantiate(tile, new Vector3(x/3, y/3, -2), Quaternion.identity) as GameObject;
tileNumber++;
go.name = "tile" + tileNumber;
go.tag = "grid";
RaycastHit hit;
Vector3 fwd = go.transform.TransformDirection(Vector3.forward);
Debug.DrawRay(go.transform.position, fwd * 50, Color.green);
if(Physics.Raycast(go.transform.position, fwd, out hit, 200)){
go.tag = "walkableGrid";
}
}
}
그러나 디버그 레이도 표시되지 않습니다, 태그 중 하나를 변경하지 않습니다
내 코드는 다음과 같습니다. 실제로 내지도 그리드를 감지하지, 작업중인 선을 보여줍니다
편집 : 프로그래머가 나를 도와했지만, 그의 솔루션은 나를 위해 작동하지 않았다. 그는 누군가가 관심 그래서 만약 그가 같은 문제를 heres, 다른 곳에서 내 프로젝트 거짓말을 할 수 언급 한 것 : https://www.dropbox.com/s/535soeswrgq37b4/MTA16336_Project_Boardgame.rar?dl=0
"작동하지 않는 것 같습니다. 디버그도 표시되지 않습니다."코드에 Debug.Log가 없습니다. 작동하지 않고 작동하는 것은 무엇입니까? – Programmer
"Debug.DrawRay (go.transform.position, fwd * 50, Color.green);" 가시 광선을 보여 주어야합니다 –
그래,하지만 얼마나 자주 호출되는지에 달려 있습니다. 매 프레임마다 호출되지 않는지 확인하기가 어려울 것입니다. Debug.Log를 추가하여 코드 일부에 도달했는지 확인해야합니다. – Programmer