我在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;
}
}
答案 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情况下是不可能的。