我正在为我的项目设计游戏,不知何故,得分(文本)在动作后不会更新。它停留在0。
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class uiManager : MonoBehaviour {
public Text scoreText;
bool gameOver;
int score;
// Use this for initialization
void Start () {
gameOver = false;
score = 0;
InvokeRepeating ("scoreUpdate", 1.0f, 0.5f);
}
// Update is called once per frame
void Update ()
{
scoreText.text = "Point: " + score;
}
void scoreUpdate()
{
if (gameOver == false)
{
score += 1;
}
}
public void gameOVER()
{
gameOver = true;
}
public void Play()
{
Application.LoadLevel ("MuachiJump");
}
void OnCollisionEnter2D(Collision2D col)
{
if (col.gameObject.tag == "branch")
{
score += 1;
Destroy(col.gameObject);
}
}
我只想确定此代码中是否有任何错误?所有这些似乎都是正确的。
答案 0 :(得分:3)
代码本身似乎很好。确保uiManager
附加到场景中处于活动状态的对象。在Update
方法中,如果添加,例如Debug.Log(score)
,则应每帧打印到日志。如果没有发生这种情况,则需要将脚本附加到场景中的对象,并确保Text对象具有有效的引用。
答案 1 :(得分:0)
您是否有活动对象并在场景中附加了脚本?