Proszę zobaczyć poniższe obrazy.Sprawdzanie, czy punkt dotykowy znajduje się w zderzaczu pudełkowym w Unity
W pierwszym obrazku widać, że istnieje pole zderzacz. Drugi obraz jest podczas uruchamiania kodu na urządzenia z systemem Android
Oto kod, który jest dołączony do gry gra (jej tekst 3D)
using UnityEngine;
using System.Collections;
public class PlayButton : MonoBehaviour {
public string levelToLoad;
public AudioClip soundhover ;
public AudioClip beep;
public bool QuitButton;
public Transform mButton;
BoxCollider boxCollider;
void Start() {
boxCollider = mButton.collider as BoxCollider;
}
void Update() {
foreach (Touch touch in Input.touches) {
if (touch.phase == TouchPhase.Began) {
if (boxCollider.bounds.Contains (touch.position)) {
Application.LoadLevel (levelToLoad);
}
}
}
}
}
Chcę zobaczyć, czy punkt dotykowy jest wewnątrz zderzacz lub nie. Chcę to zrobić, ponieważ teraz kliknę gdziekolwiek na scenie Application.LoadLevel (levelToLoad); jest nazywany.
Chcę, aby zadzwonił, gdy kliknę tylko tekst ZAGRAJ. Czy ktoś może mi pomóc z tym kodem lub może dać mi inne rozwiązanie mojego problemu?
Nowy kod postępując logicznego heisenbug w
void Update() {
foreach(Touch touch in Input.touches) {
if(touch.phase == TouchPhase.Began) {
Ray ray = camera.ScreenPointToRay(new Vector3(touch.position.x, touch.position.y, 0));
RaycastHit hit;
if (Physics.Raycast(ray, out hit, Mathf.Infinity, 10)) {
Application.LoadLevel(levelToLoad);
}
}
}
}
To, co zrobiłem, to, że Wybrany tekst 3d i w inspektorze wybrano do niego przypisaną warstwę.Numer warstwy wynosił 8. Następnie przekazałem parametr layerOfYourGameObject jako 8 i uruchomiłem kod, ale nadal nie występuje kolizja. Dołączyłem kod w powyższym pytaniu. –
Proszę mnie poprawić, jeśli nie mam racji, dodając warstwę do tekstu 3D. 1) Wybierz tekst 3d. 2) W Inpector poszedł do AddLayer i nazwał Unity Layer 10 do PlayGameLayer. 3) W inspektorze Tag = Untagged and Layer = PlayGameLayer. 4) Skrypt z powyższym kodem jest dołączony do PlayGame 3d Text. Czy to właściwa droga? Jeśli tak, to co może być nie tak? –
@Jawad Amjad: czy podłączyłeś obwiednię do tego samego GameObject, który ma dołączony komponent Text? – Heisenbug