0

我正在设计我的第一个游戏,我正在尝试以 5 秒的步长创建一个时间变量(比如比实时慢 5 倍)。

这是我拥有 GUI 的地方(仅粘贴相关部分):

using UnityEngine;
using Assets.Code.Interfaces;
using Assets.Code.Scripts;
using Assets.Code.PowerPlants;
namespace Assets.Code.States

Debug.Log (TimeManager.gametime);
public void ShowIt()
    {

GUI.Box (new Rect (Screen.width - 650, 10, 100, 25), TimeManager.gametime.ToString() );  // GAME TIME HOURS
}

这是计算我的游戏时间的地方:

using System;
using UnityEngine;
namespace Assets.Code.Scripts
{
    public class TimeManager
    {
        public static int gametime;
        public TimeManager ()
        {
        gametime = (int)Time.timeSinceLevelLoad / 5;
        }
    }
}

我没有收到任何错误,但游戏时间的值始终为 0。这以前有效,但不再有效,我不知道为什么。有什么提示吗?

4

2 回答 2

1

我认为,这是因为您gametimeTimeManager. 所以,它永远不会更新。将其放入更新中,然后它将起作用。

于 2015-12-12T18:54:44.140 回答
1
namespace Assets.Code.Scripts
{
    public class TimeManager
    {
        public static int gametime 
        { 
           get { return (int)Time.timeSinceLevelLoad / 5;  }
        }
    }
}

ctor 在您的情况下没有用,只需添加一个返回您需要的值的属性。

于 2015-12-12T18:57:23.167 回答