如何根据时间改变浮动值?
例如。我们有:
public float usdValue = 1f;
如何使美元的价值根据UTC时间随机变化?喜欢+或 - 在它的时间值的-20%到+ 75%之间?虽然它的价值每1-5分钟变化一次?
提前谢谢。
答案 0 :(得分:1)
这将随机生成1-5分钟(60-300秒)和值修改器之间的间隔,范围在20-75%之间。虽然重置后经过的时间小于间隔,但该值保持不变。一旦间隔时间过去,它将重新计算。
using System;
using UnityEngine;
public class USDValueRandomizer : MonoBehaviour {
public float usdValue = 1;
public float ModifiedUSDValue = 1;
public int MinIntervalTimeInSeconds = 60;
public int MaxIntervalTimeInSeconds = 300;
public float MinValueModifier = 0.2f;
public float MaxValueModifier = 0.75f;
private DateTime IntervalStart;
private int IntervalTimeInSeconds;
private float ValueModifier;
private void Start()
{
RecalculateValue();
}
private void FixedUpdate()
{
TimeSpan elapsedTime = DateTime.UtcNow - IntervalStart;
if (elapsedTime.Seconds >= IntervalTimeInSeconds)
RecalculateValue();
ModifiedUSDValue = usdValue * ValueModifier;
}
private void RecalculateValue()
{
IntervalStart = DateTime.UtcNow;
IntervalTimeInSeconds = Mathf.RoundToInt(UnityEngine.Random.Range(MinIntervalTimeInSeconds, MaxIntervalTimeInSeconds));
ValueModifier = UnityEngine.Random.Range(0.2f, 0.75f);
}
}
答案 1 :(得分:1)
我会把这个答案扔到那里 - 它适用于C#,但它与Unity3d完全无关(我对Unity3d一无所知),所以也许还有其他一些需要修改。
如果我理解正确,您希望将import logging.config
import yaml
with open('./test.yml', 'r') as stream:
config = yaml.load(stream)
logging.config.dictConfig(config)
(货币应始终存储在decimal
)中的值更改为介于decimal
和{之间的随机值{1}}它的当前值,您希望这是在-20%
和+76%
分钟之间的随机间隔发生的。
如果这是正确的,一种方法是使用1
:
5
<强>输出强>
请注意,对于示例输出,我将值更改为介于1到15秒之间,因为我不想等待那么久!
System.Threading.Timer