【发布时间】:2014-09-19 23:54:24
【问题描述】:
所以我正在统一做一个简单的棋盘游戏。我的过程是,当我按下一个按钮时,程序会生成一个 1-9 的随机数,我的角色会根据结果数字从初始位置改变位置到下一个位置。
我的流程运行良好。我的角色按应有的方式移动,但我的触摸输入有一个小问题。当我按下按钮时,它会生成一个数字并在 GUIText 中显示为 JUST A MILLISECOND,然后当我松开按钮时它会再次变回 0。我认为我的问题是结果数字仅在我按住按钮时出现在 GUIText 中,当我放手时返回 0。这不仅是问题,另一个问题是当我按住按钮更长时间时,它会继续生成和接受数字,所以它完全搞砸了我的过程。我的问题是如何防止我的按钮在单击后处理,以及如何在单击后在我的 GUIText 中显示结果数字。我已经对我的 if 语句进行了试验,将其更改为不同的 Touch Phase 属性,但我仍然无法正确处理。这是我的代码:
using UnityEngine;
using System.Collections;
public class dice_roll : MonoBehaviour {
public Texture2D roll_btn;
public Texture2D roll_btn2;
public static int num = 0;
public static string num_str = "";
public GUIText move_number;
public static int character_position = 0;
public static float y_axis = 1.18f;
public GameObject character;
public GameObject i;
public GameObject ii;
public GameObject iii;
public GameObject iv;
public GameObject v;
public GameObject vi;
public GameObject vii;
public GameObject viii;
public GameObject ix;
// Use this for initialization
void Start ()
{
guiTexture.texture = roll_btn;
}
// Update is called once per frame
void Update ()
{
move_number.text = "0";
foreach (Touch touch in Input.touches)
{
if (guiTexture.HitTest(touch.position))
{
num = Random.Range(1,10);
guiTexture.texture = roll_btn2;
num_str = num.ToString();
move_number.text = num_str;
character_position = character_position + num;
switch (character_position)
{
case 1 :
//character.transform.position = i.transform.position;
character.transform.position = new Vector3 (i.transform.position.x, y_axis, i.transform.position.z);
break;
case 2 :
character.transform.position = ii.transform.position;
character.transform.position = new Vector3 (ii.transform.position.x, y_axis, ii.transform.position.z);
break;
case 3 :
//character.transform.position = iii.transform.position;
character.transform.position = new Vector3 (iii.transform.position.x, y_axis, iii.transform.position.z);
break;
case 4 :
//character.transform.position = iv.transform.position;
character.transform.position = new Vector3 (iv.transform.position.x, y_axis, iv.transform.position.z);
break;
case 5 :
//character.transform.position = v.transform.position;
character.transform.position = new Vector3 (v.transform.position.x, y_axis, v.transform.position.z);
break;
case 6 :
//character.transform.position = vi.transform.position;
character.transform.position = new Vector3 (vi.transform.position.x, y_axis, vi.transform.position.z);
break;
case 7 :
//character.transform.position = vii.transform.position;
character.transform.position = new Vector3 (vii.transform.position.x, y_axis, vii.transform.position.z);
break;
case 8 :
//character.transform.position = vii.transform.position;
character.transform.position = new Vector3 (viii.transform.position.x, y_axis, viii.transform.position.z);
break;
case 9 :
//character.transform.position = vii.transform.position;
character.transform.position = new Vector3 (ix.transform.position.x, y_axis, ix.transform.position.z);
break;
}
}
}
}
}
我的 GUITexture roll_btn 是我按下的按钮。所以我所指的问题是我的整数character_position 在按住按钮时不断从生成的数字中添加值。我想防止这种情况发生。
在此先感谢您。 :D
【问题讨论】: