Unity3D脚本时间SinceLevelLoad变量未返回c#

本文关键字:返回 变量 SinceLevelLoad 脚本 时间 Unity3D | 更新日期: 2023-09-27 18:26:30

我正在设计我的第一个游戏,我试图创建一个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。这以前是有效的,但现在不起作用了,我不知道为什么。有什么提示吗?

Unity3D脚本时间SinceLevelLoad变量未返回c#

namespace Assets.Code.Scripts
{
    public class TimeManager
    {
        public static int gametime 
        { 
           get { return (int)Time.timeSinceLevelLoad / 5;  }
        }
    }
}

ctor在您的情况下并不有用,只需添加一个返回所需值的属性即可。

我认为,这是因为在TimeManager的构造函数中只设置了一次gametime。因此,它永远不会更新。把它放在更新中,然后它就会工作。