Unity 3D c # 2 различных цикла для запуска одновременно - PullRequest
0 голосов
/ 01 октября 2018

Итак, я создаю очень простую игру, не собираюсь рассказывать, о чем она, потому что это секрет, но у меня есть переменная с именем «rpm», и каждый кадр будет вращать объект на «rpm».Но каждая вторая частота вращения будет увеличиваться на 0,1, как бы я это сделал, я пытался использовать 2 разных сценария, а также в одном и том же сценарии с использованием многопоточности, но, поскольку я довольно новичок в c #, мне было интересно, как бы я этого достиг, любойпомощь очень ценится

script 1

public class Rotate : MonoBehaviour
{
    public float rpm = RPM.rpm;


    // Update is called once per frame
    void Update ()
    {
        transform.Rotate(0, rpm, 0);
    }
}

script 2

public class RPM : MonoBehaviour
{
    public static float rpm = 0.1f;

    void Update()
    {
        System.Threading.Thread.Sleep(1000);
        rpm = rpm + 0.1f;
    }
}

все, что нужно сделать, это не увеличивать обороты, поэтому скорость вращения остается той же,но вместо того, чтобы крутиться один раз в каждом кадре, он вращается каждую секунду, чего я не хочу.

Опять же, любая помощь очень ценится, и если вам нужна дополнительная информация, просто дайте мне знать Спасибо

1 Ответ

0 голосов
/ 01 октября 2018

Вот фрагмент кода, который выполнит то, что вы просите

public class RPM : MonoBehaviour
{
    public static float rpm = 0.1f;

    private float elapsed = 0.0f;

    void Update()
    {
        elapsed += Time.deltaTime;
        if (elapsed >= 1.0f) {
            rpm = rpm + 0.1f;
            elapsed = 0.0f;
        }
    }
}

Time.deltaTime равно количеству времени, которое прошло с последнего кадраигра (в секундах).Переменная elapsed отслеживает, сколько времени прошло, просто добавляя Time.deltaTime каждый кадр.Когда истекшее время превышает 1 секунду, ваша переменная об / мин увеличивается, а истекшая переменная сбрасывается до 0.

Я бы рекомендовал прочитать о различных свойствах объекта Время .Вы, вероятно, в конечном итоге будете часто его использовать.

...