Таймеры и задержки через инвоки и корутины в Unity / Как создать игру [Урок 64]

Таймеры и задержки через инвоки и корутины в Unity / Как создать игру [Урок 64]

22,873 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

@dmitryshelekhan5521
@dmitryshelekhan5521 - 01.12.2019 23:25

Благодарю за уроки как раз в тему.

Ответить
@Mr.Epsilion
@Mr.Epsilion - 02.12.2019 04:29

Благодарю, Владимир

Ответить
@Несмешнонесмеемся
@Несмешнонесмеемся - 12.04.2020 01:11

спасибо ! ,нужно было сделать небольшую задержку, пытался использовать куротины но у меня не работало,про инвоки услышал у вас и у меня они работают

Ответить
@rezo4846
@rezo4846 - 12.04.2020 16:52

извините, я начинающий. выдаётся ошибка - UnassignedReferenceException: The variable obj of Script has not been assigned.
You probably need to assign the obj variable of the Script script in the inspector.
Script+<<Update>g__one_object|1_0>d.MoveNext () (at Assets/Scenes/Scripts/Script.cs:15)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Scripting/Coroutines.cs:17)
вот мой код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Script : MonoBehaviour {

public GameObject obj;
public float sec = 1.5f;

void Start () {
Invoke ("Inst", 2f);
}

void Update () {
if (Input.GetKey (KeyCode.F))
StartCoroutine (instObj());
}

void Inst () {
Instantiate (obj, new Vector3 (Random.Range (-10f, 10f), 0f, Random.Range (-10f, 10f)), Quaternion.identity);
}

IEnumerator instObj () {
while (true) {
Instantiate (obj, new Vector3 (Random.Range (-10f, 10f), 0f, Random.Range (-10f, 10f)), Quaternion.identity);
yield return new WaitForSeconds (sec);
}
}
}

Ответить
@_T-800_
@_T-800_ - 26.04.2020 17:09

привет). отличный урок!) молодец:)

Ответить
@vladimirmanzhula2730
@vladimirmanzhula2730 - 14.04.2021 19:45

Не вижу метод Invoke, красным подсвечивает

Ответить
@kisaMRY
@kisaMRY - 21.07.2021 15:27

Не получается решить задачу. Есть три сферы, которые нужно собрать, собираю все три, активирую надпись что все сферы собраны. Ставлю таймер на три секунды чтобы эта надпись пропала снова. Но так как проверка стоит собрал или не собрал все сферы, через апдейт, получается что таймер постоянно обновляется и не запускает дальнейшее действие. Как быть?

Ответить
@4epurikGames
@4epurikGames - 12.02.2022 20:08

почему то не работает инвок с OnTriggerEnter2D

Ответить
@KrotikiNarkrotiki
@KrotikiNarkrotiki - 17.03.2022 19:37

Привет! Спасибо, вы очень мне помогли.

Ответить
@BornedFromSalt
@BornedFromSalt - 22.03.2022 14:33

Ты забыл упомянуть, что чтобы использовать метод Delay_COR нужно подключать библиотеку collections. А ещё чём разница между корутинами и инвоком? Это не раскрыто

Ответить
@сашакосолобов-л1в
@сашакосолобов-л1в - 26.06.2022 20:03

Здравствуйте, Владимир. На сколько рационально ставить таймер корутину на старт в компонент-эффект, чтобы ограничивать время жизни эффекта, если такой эффект будет вешаться на большое (до 200) количество объектов? На сколько это лучше, чем if (duration<=0) Destroy(gameObject); duration-=Time.deltaTime; в теле Update()???

Ответить
@NARkoZ..
@NARkoZ.. - 31.08.2022 03:55

Супер, весь день бился с задержкой, а оказывается все так просто! Отличный урок, доходчиво, по делу и на примерах!

Ответить
@kirillvpgames4932
@kirillvpgames4932 - 21.09.2022 18:51

Я так понял, что инвок использовать лучше чем корутину, если задержка будет использоваться не один раз.

Ответить
@azart23301
@azart23301 - 18.12.2022 14:05

А как это сделать через if OnTriggerEnter

Ответить
@andrexxelles
@andrexxelles - 08.01.2023 15:21

Просто супер

Ответить
@ГалинаВандышева-к9л
@ГалинаВандышева-к9л - 20.03.2023 10:25

спасибо огромное, очень сильно помог!

Ответить
@Pa3BeDka_Gaming
@Pa3BeDka_Gaming - 23.11.2023 19:59

Понапихал все что знает и преподносят это для новичков

Ответить