Unity:Android触控Gui纹理

时间:2013-11-02 20:38:19

标签: c# mono unity3d

使用Unity 4.1.2,使用C#mono,Android Development。

大家好我已经创建了以下脚本。

using UnityEngine;
using System.Collections;

public class ButtonLeftMove : MonoBehaviour {

// Use this for initialization
public float MoveSpeed = 10;
private float min = -20f;
private float max = 20f;

void Start () {

}

// Update is called once per frame
void FixedUpdate () 
{
    MoveSpeed = 50F;
    GameObject joeblob = GameObject.FindGameObjectWithTag("playertag");

    if(Input.touches.Length > 0)
    {
        Debug.Log ("Touched");
        joeblob.rigidbody.AddForce(Vector3.left * MoveSpeed);
        //rigidbody.AddForce(Vector3.right * MoveSpeed);
    }

    Vector3 clampVel = joeblob.rigidbody.velocity;
    clampVel.x = Mathf.Clamp(clampVel.x, min, max);

    joeblob.rigidbody.velocity = clampVel;
}
}

效果很好,当触摸屏幕时对象移动,但是对于屏幕的任何部分都是如此。

这个脚本附加到我的GUI纹理,我只希望如果触摸了GUI纹理,它就是真的不是屏幕上的任何地方!

我错过了哪些额外的代码?

欢呼声

1 个答案:

答案 0 :(得分:4)

GUITexture是一个名为HitTest的方法,它是一个GUIElement。您可以使用它来测试您的触摸位置是否在GUITexture中。这就像是

if(guiTexture.HitTest(Input.touches[0].position))
{
    //I'm hit, I'M HIT!! GOING DOWN!!!
}

当然,你必须确保确实有接触,但你明白了。