请看下面的图片。
在第一张图片中,您可以看到有盒子对撞机。第二张图片是我在 Android 设备上运行代码时
这是附加到玩游戏的代码(它是一个 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);
}
}
}
}
}
我想看看接触点是否在对撞机内。我想这样做是因为现在如果我单击场景中的任何位置 Application.LoadLevel(levelToLoad); 叫做。
如果我只点击 PLAY GAME 文本,我希望它被调用。任何人都可以帮助我处理这段代码,或者可以给我另一种解决我的问题的方法吗?
遵循 Heisenbug 的逻辑的最新代码
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);
}
}
}
}