자, 여기 내 코드가 있습니다. 이것은 정말 간단해야하지만 어떤 이유로 든 나와 함께하기를 원하지 않습니다. 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
}
미리 감사드립니다. 그것이 간단해야하기 때문에 이것은 내 견과를 몰고있다.
편집 : 이번에는 전체 코드 게시, 모두 해당됩니다. 태그가있는 다른 객체가 없다는 것을 언급해야합니다. null 공간입니다. 이것은 아이들을위한 아주 기본적인 모양 식별자였습니다.
편집 : 편집 : 개체를 치지 않으면 -99를 출력 할 것으로 예상됩니다. 나중에 아마 번호로 뭔가를 할 것이지만 지금은이 문제를 해결할 필요가 있습니다.
전체 코드를 게시 할 수 있습니까? –
질문을 편집하여 일어날 것으로 예상되는 것을 진술하고 현재 일어나는 일을 진술해야합니다. 당신은 그렇게하지 않았고 이것은 실제로 대답하기 어려울 것입니다. 현재의 질문으로, 아무도 당신이 기대하는 것을 말할 수 없습니다. 또한 실행중인 기능이 무엇인지 알려주십시오. – Programmer
1. 첫 번째 if (Physics ...)에 대해 더 이상 배치 할 수 없습니까? 그리고 Hitnum에 특정 값을 지정하여 그 값이 고정되어 있는지 확인합니다. 2. 변수가 겹쳐 쓰여지는지 알기 위해서 또는 단순히 이전 값으로 유지하면 변수를 겹쳐 쓰는 대신 변수를 늘릴 수 있습니다. 멈추는 위치를 알 수 있습니다. 3. 다른 변수가 너무 읽기 쉽지 않은 경우 변수를 변경하는 방법 스위치 케이스 성명서에? – Kev1n91