私が作成した現在の設定をゲームオブジェクトにします。レイキャスト検出は
目的は、バックグリッドの各タイルからレイキャストを作成して、その前に何かがあるかどうかを検出し、そのタイルタグを変更することです。
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";
}
}
}
しかし、デバッグ線も示していない、とタグがいずれか変更されません:
私のコードは次のように見えます。確かに私のマップグリッドを検出していない、作業している光線を示し
EDIT:プログラマが私を助けようとしたが、彼のソリューションは私のために動作しませんでした。彼は彼が私のプロジェクトを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