как сделать телепорт объекта

я хочу сделать в главном меню игры облака которые типа плывут над океаном. и не знаю как зациклить их движение слева направо . вот код который я нашёл на передвижение объекта в пространстве , и хотел бы узнать лучший способ зацикливания их передвижения (чтобы они уходили в одну сторону и появлялись с другой)


public class небо : MonoBehaviour
{
    public Vector2 direction;
    public float speed = 2;
    
    void FixedUpdate()
    {
        transform.Translate(direction.normalized * speed);
    }
}

Ответы (1 шт):

Автор решения: Максим Фисман

Вы же правильно пишите, что для зацикливания нужно просто когда облако уйдет направо за экран перемещать его в левую часть экрана (точнее в левую часть за экраном, чтобы оно потихоньку выплыло). Что именно вам не понятно? Как это реализовать? Если да, то реализовать это можно с помощью условия если облако ушло за экран, то переместиться в левую часть экрана:

if (transform.position.x > Screen.width) {
    transform.position = new Vector3([число слева экрана], transform.position.y, transform.position.z);
}

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

→ Ссылка