【发布时间】:2013-05-08 14:01:49
【问题描述】:
请看下面的图片。
在第一张图片中,您可以看到有盒子碰撞器。 第二张图片是当我在 Android 设备上运行代码时
这是附加到 Play Game 的代码(它是一个 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);
}
}
}
}
【问题讨论】:
标签: android unity3d game-physics