Unity2D:如何检查是否点击/触摸了精灵

时间:2015-08-24 18:39:19

标签: c# ios button unity3d touch

我在Unity for iOS中制作2D平台游戏,我需要制作按钮以便用户可以移动,但由于某种原因,我制作的脚本无效。另外,我输入的脚本仅用于Left按钮,但Right和Jump脚本的工作方式相同。

代码:

using UnityEngine;
using System.Collections;

public class Left : MonoBehaviour {

public GameObject player;
public GameObject button;

void Start () {

}

void Update () {
    if (Input.GetKey (KeyCode.A)) {
        player.GetComponent<PlayerAnimator>().animationState = MovementState.moveLeft;
        player.transform.position+=Vector3.left / 30;
    }



    if (Input.touchCount > 0){
        foreach(Touch touch in Input.touches){
            Collider2D col = button.GetComponent<Collider2D>();

            Vector3 tpos = Camera.main.ScreenToWorldPoint(new Vector3(touch.position.x, touch.position.y, 0));

            if(col.bounds.Contains(tpos)){
                Debug.Log ("left");
                player.GetComponent<PlayerAnimator>().animationState = MovementState.moveLeft;
                player.transform.position+=Vector3.left / 30;
            }
        }
    }
}

void OnMouseOver(){
    Debug.Log ("left");
    player.GetComponent<PlayerAnimator>().animationState = MovementState.moveLeft;
    player.transform.position+=Vector3.left / 30;
}

void OnMouseUp(){
    player.GetComponent<PlayerAnimator> ().animationState = MovementState.idleLeft;
}

}

1 个答案:

答案 0 :(得分:1)

不要将OnMouseOver用于Android应用程序。它不适用于触摸设备。但不是它,OnMouseDrag函数将起作用。

<script type='text/javascript'>//<![CDATA[

$('.popover-markup>.trigger').popover({
    html: true,
    title: function () {
        return $(this).parent().find('.head').html();

    },
    content: function () {
        return $(this).parent().find('.content').html();

    },

    open: function () {

        $(this).parent().appendTo("form");
    }


});
//]]> 

编辑:因为当鼠标的位置在对象上但未单击时,会调用OnMouseOver。否则,当鼠标的位置在对象上并单击时,将调用OnMouseDrag。在移动设备OnMouseOver情况下是不可能的。