1 ответ

Лучший ответ

Прежде всего, добро пожаловать в stackoverflow.

Из того, что я вижу на видео, вы хотите, чтобы ящик появлялся в определенной позиции x с определенным масштабом, вот код, который я придумал.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BoxSpawn : MonoBehaviour
{
    public GameObject box;
    public float minXpos, maxXpos;
    public float timeBetweenBoxes;
    void Start()
    {
        //starts the loop for spawning boxes
        StartCoroutine(SpawnBox());
    }

    IEnumerator SpawnBox()
    {
        //get a random position on the x axis
        Vector3 boxPos = new Vector3(Random.Range(minXpos, maxXpos), 0, 0);

        //spawn the box
        Instantiate(box, boxPos, Quaternion.Euler(0, 0, 0));

        //let the code wait a certain time
        yield return new WaitForSeconds(timeBetweenBoxes);

        StartCoroutine(SpawnBox());
    }
}

Поместите этот сценарий на случайный игровой объект и создайте префаб из игрового объекта коробки. Перетащите этот префаб на игровой объект / скрипт.

Создайте новый скрипт и поместите этот код в этот скрипт:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Box : MonoBehaviour
{
    private float minSize = 0.5f; //minimum size
    private float maxSize = 2; //maximum size
    private float moveSpeed = 5;
    void Start()
    {
        //changes the size of the object to random values
        transform.localScale = new Vector3(Random.Range(minSize, maxSize), Random.Range(minSize, maxSize), Random.Range(minSize, maxSize));
    }

    void Update()
    {
        //moves the box in -z axis
        transform.Translate(new Vector3(0, 0, 1) * moveSpeed * Time.deltaTime);


        //destroys gameobject after a number of seconds (OPTIONAL BUT RECOMMENDED)
        //Destroy(gameObject, 10);
    }
}

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

Final result

Если вы хотите, чтобы ящики двигались физически, добавьте к нему компонент Rigidbody

1
Bean5 Music 18 Июн 2020 в 17:54