【发布时间】:2015-03-14 19:47:53
【问题描述】:
我或多或少是 Unity 的新手,我正在为 4.6 中的新 UI 内容而苦苦挣扎。基本上我想做的是每次玩家通过按下 w/a/s/d 进行移动动作时,我希望经过的回合数增加 1,并反映在 UI 中。这就是我现在拥有的角色移动控制器脚本:
public float speed;
public static int Turns;
void Update()
{
if (Input.GetKey(KeyCode.W)&& rigidbody2D.velocity.y == 0.0f && rigidbody2D.velocity.x == 0.0f )
{
rigidbody2D.AddForce(Vector2.up * speed);
Turns = Turns + 1;
}
if (Input.GetKey(KeyCode.A)&& rigidbody2D.velocity.y == 0.0f && rigidbody2D.velocity.x == 0.0 )
{
rigidbody2D.AddForce(-Vector2.right * speed);
Turns = Turns + 1;
}
if (Input.GetKey(KeyCode.S)&& rigidbody2D.velocity.y == 0.0f && rigidbody2D.velocity.x == 0.0)
{
rigidbody2D.AddForce(-Vector2.up * speed);
Turns = Turns + 1;
}
if (Input.GetKey(KeyCode.D)&& rigidbody2D.velocity.y == 0.0f && rigidbody2D.velocity.x == 0.0)
{
rigidbody2D.AddForce(Vector2.right * speed);
Turns = Turns + 1;
}
}
这是我试图用来将文本更改为转数的脚本,但尽管没有突出显示错误等,Unity 不会认为它是附加到 UI 文本的有效脚本对象:
public class TurnManager : MonoBehaviour
{
public Text text;
void Awake()
{
text = GetComponent <Text> ();
}
void Update()
{
text.text = PlayerController.Turns.ToString();
}
}
这是我从教程中收集到的,但我觉得它真的错了,哈哈。谁能帮我弄清楚我应该有什么来完成这项工作?
【问题讨论】:
标签: c# user-interface unity3d