申し訳ありませんが、ここに私のコードです。これは本当にシンプルなはずですが、何らかの理由で私と一緒に働きたくありません。 Raycastはマウスからレイを送信します。タグ付きのオブジェクトに当たった場合は、変数に数値を割り当てます。オブジェクトにヒットしない場合は、変数を-99として設定します。何らかの理由で地雷がぶら下がっている:Elseステートメントは単一では機能しませんか?
A.私はオブジェクトをヒットしない、それは-99初めて出力が、その後は4
BIオブジェクトをヒットし、それが意志割り当てられたばかりでハングうまく動作します。オブジェクトをオフにした後、以前にヒットしたオブジェクトの変数にハングアップします。
em.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameFunctions : MonoBehaviour {
int Hitnum = -99;
void Start() {
}
void Update() {
if (Input.GetMouseButtonDown (0)) {
objectCheck();
}
}
//end of UPDATE function
public void objectCheck() {
RaycastHit hit;
Ray ray = camera.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast (ray, out hit, 10000.0f)) {
if (hit.collider.tag == "Box") {
Hitnum = 1;
} else if (hit.collider.tag == "Sphere") {
Hitnum = 2;
} else if (hit.collider.tag == "Pyramid") {
Hitnum = 3;
} else if (hit.collider.tag == "Trapezoid") {
Hitnum = 4;
} else {
Hitnum = -99;
}
}
Debug.Log (Hitnum);
}
//end of check
}
ありがとうございます。それは簡単でなければならないので、これは私にナットを運転しています。
EDIT:今回は完全なコードを投稿しました。私は、タグ付きの他のオブジェクトがないことを言及する必要があります、それはちょうど空白です。これは子供のための非常に基本的な形の識別子であると考えられていました。
編集:編集:あなたがオブジェクトに当たっていない場合は、-99を出すことが期待されます。後で私はおそらく数字で何かをするだろうが、今私はこれを修正する必要があります。
完全なコードを投稿できますか? –
質問を編集して、何が起こっているのかを明らかにし、現在起こっていることを述べる必要があります。あなたはそれをしなかったし、これは実際に答えるのが難しいでしょう。現在の質問では、誰もあなたが何を期待するかは分かりません。また、どの機能が呼び出されているか教えてください。 – Programmer
1.最初のif(Physics ...)にもう1つ追加して、Hitnumに一定値を与えて、それが固着しているかどうかを確認することができますか? 2.変数が上書きされたかどうかを知るためには、変数を上書きするのではなく変数を増やすことができます。変数がどこにあるのか知ることができます。スイッチケースのステートメントに? – Kev1n91