using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveScript : MonoBehaviour
{
public GameObject obj;
bool t = false;
public int plspeed;
// Start is called before the first frame update
void Start()
{
Debug.Log("start");
StartCoroutine(wait1());
}
void stt()
{
StopCoroutine(wait1());
Debug.Log("stop stt");
}
// Update is called once per frame
void Update()
{
}
IEnumerator wait1()
{
Debug.Log("start IEnumerator");
yield return new WaitForSeconds(2f);
obj.transform.Translate(-Vector3.right * plspeed * Time.deltaTime);
Debug.Log("stop waitforseconds");
stt();
Debug.Log("stop IEnumerator");
}
}
Translate просто телепортирует объект через две секунды. Моя задача сделать движение объекта так: в одну сторону две секунды, в другую сторону две секунды и так бесконечно.
Вызывать корутину в корутине - плохо, вызывать корутины в больших количествах в целом плохо, потому что это не самое дешевое занятие. Если нужно сделать таймер - нужно это делать через while(true)
или схожий цикл, запускать по корутине за итерацию - такая себе затея.
Что вы написали, то и происходит:
yield return new WaitForSeconds(2f);
- подождать 2 секундыobj.transform.Translate(-Vector3.right * plspeed * Time.deltaTime);
- сдвинуть объект за 1 кадрУчитывая, что объекту нужно каждые 2 секунды менять направление на противоположное, проще поручить корутине менять направление каждые 2 секунды, а в самом Update()
двигать объект:
public class Mover : MonoBehaviour {
public GameObject obj;
public Vector3 moveVector = -Vector3.right;
public float speed;
void Start() {
StartCoroutine(ControlDirection());
}
void Update() {
obj.transform.Translate(moveVector * speed * Time.deltaTime);
}
IEnumerator ControlDirection() {
// необходимо рано или поздно выйти из этого цикла
// при смене уровня, например
// для этого нужно добавить какой-то механизм выхода из корутины
// и ее повторного запуска, но это уже отдельный вопрос
while (true) {
yield return new WaitForSeconds(2f);
speed *= -1;
}
}
}
Получаем закономерный результат:
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть сайт, там я должен проходить регистрацию, я хочу автоматизировать этот процесс
Хочу сделать чтобы в зависимости от выбранного input отправлялось на нужный метод, Как можно сделать ссылку на этот инпут?
Пару дней назад в cefsharp добавили поддержку расширенийНикакой документации как добавить расширения я не нашел, хотя в коммитах есть инфа
Можно ли в с# CLR код, запустить в "трассировочном" режиме? Можно ли как-то перехватить вызов Invoke? Как можно написать дебаггер под с# код? Единственное...