@Workguy

Как реализовать передвижение объекта и создание нового в unity?

Я умею создавать объекты из "образов" добавленных в проект.
Я умею передвигать объекты.
И хочу совместить эти вещи: пытаюсь сделать так, чтоб при захода объекта за область видимость камеры создавался новый объект.
Вот мой код:
1) Скрипт для создания объекта
public class test_script : MonoBehaviour
{
    public GameObject[] Objects;
    public GameObject mainObject;


    // Start is called before the first frame update
    void Start()
    {
        int rand = UnityEngine.Random.Range(0, Objects.Length - 1);
        mainObject = Objects[rand];
        Instantiate(mainObject, new Vector3 (0,0,0), mainObject.transform.rotation);
    }

    // Update is called once per frame
    void Update()
    {

    }
}

2) Скрипт для реализации движения. Также здесь я попытался создавать новый объект если позиция нынешнего объекта достигла максимума.
P.s. Этот скрипт я добавил именно к самому объекту поэтому не указываю ссылку на него.
public class moveScript : MonoBehaviour
{
    public GameObject[] Objects;
    public GameObject mainObject;
    public float movingSpeed = 5f;
    private Vector3 maxAheadPos = new Vector3(0,0,-10);
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKey(KeyCode.W)){
            transform.Translate(-Vector3.forward * movingSpeed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.S)){
            transform.Translate(Vector3.forward * movingSpeed * Time.deltaTime);
        }

        if (transform.position == maxAheadPos) {
            int rand = Random.Range(0, Objects.Length - 1);
            mainObject = Objects[rand];
            Instantiate(mainObject, new Vector3 (0,0,0), mainObject.transform.rotation);
        }
    }
}
  • Вопрос задан
  • 32 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы