好吧,這裏是我的代碼。這應該非常簡單,但由於某種原因,它不想與我一起工作。 Raycast從鼠標發出一束光線,如果它碰到帶有標籤的物體,它會將一個數字賦給一個變量。如果它沒有碰到一個對象,那麼它將該變量設置爲-99。出於某種原因,我的是掛在:其他聲明不起作用?
答:我不打的對象,它輸出-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
}
在此先感謝。這讓我很煩,因爲它應該很簡單。
編輯:這次發佈完整的代碼,是的所有。我應該提到,沒有其他具有標籤的對象,它只是空的空間。這應該是一個非常基本的兒童形狀標識符。
編輯:編輯:我希望它把-99,如果你不擊中的對象。後來我可能會對數字做些什麼,但現在我開始需要解決這個問題。
你能發表完整的代碼嗎? –
你應該編輯你的問題,說明你期望發生什麼,然後陳述當前正在發生的事情。你沒有這樣做,這實際上很難回答。在目前的問題中,沒有人能夠說出你的期望。另外,請告訴我們正在調用哪個函數。 – Programmer
1.你可以在第一個物體(物理物體...)中放置另一個物體,並給Hitnum一定的值以檢查它是否卡住它。 2.要知道一個變量是否被覆蓋,或者只是簡單地保持原來的值,你可以增加變量而不是覆蓋變量,這樣你就可以知道它被卡住的位置。3.因爲否則如果不太好讀,怎麼改變它到switch case語句? – Kev1n91