Я умею создавать объекты из "образов" добавленных в проект.
Я умею передвигать объекты.
И хочу совместить эти вещи: пытаюсь сделать так, чтоб при захода объекта за область видимость камеры создавался новый объект.
Вот мой код:
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);
}
}
}