gpt4 book ai didi

c# - 在代码中加入定时器,然后循环

转载 作者:行者123 更新时间:2023-12-05 02:29:13 24 4
gpt4 key购买 nike

试图找到一种方法在我的代码中添加一个计时器,然后用计时器不断地循环它。例如,尝试通过单击按钮来制裁剪品,然后等待 5 秒让它制作,然后它会自动开始再次制作等等,只要我有 Material 。我四处查看教程,但未能找到我一直在寻找的内容。这是我要循环的代码:

    public double copper;
public double copperBar;
public double copperBarValue;
public double multiplier;

public void Start()
{
copperBar = 0;
copperBarValue = 5;
copper = 0;
multiplier = 1;
}

**public void FurnaceInteraction()
{
if (copper >= copperBarValue)
{
copper -= copperBarValue;
copperBar += 1 * multiplier;
}
}**

最佳答案

这将彻底解决您的问题。您只能在 while 中放置一个条件。

private void Start() => StartCoroutine(Run());
public bool youHaveMaterials;
public IEnumerator Run()
{
while (youHaveMaterials) // repeat time until your materials end
{
Debug.Log("Do Crafting..");
yield return new WaitForSeconds(5);
}
}

IEnumerator 是一个基于时间的函数,它本身可以支持等待时间。只要满足条件,While 也会返回代码。 wait 和 `while 的组合使创建者在每次满足条件时创建项目,然后等待 5 秒。它从您仍然拥有 Material 的地方重建。


例如..

在下面的代码中,用 2 个铁杆,我们也可以制作 2 个剑。例如,当您的角色要去锻造时,只需运行 StartCoroutine

private void Start() => StartCoroutine(CraftSword());

public int Iron = 2;
public IEnumerator CraftSword()
{
Debug.Log("Start Crafting..");
while (Iron > 0)
{
Iron--;

Debug.Log("Sword Created!!" + "Remaining Iron: " + Iron);

if (Iron == 0) break;

yield return new WaitForSeconds(.5f);

Debug.Log("Wait 0.5 second.");
}
Debug.Log("My Irons End..");
}

enter image description here

关于c# - 在代码中加入定时器,然后循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72313996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com