Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Подскажите пж как исправить скрипт в Unity

Межголоктический разум Ученик (138), открыт 2 недели назад
как сделать чтобы созданные клоны тоже находились внутри пустого объекта. Закинул скрипт создания в этот объект но всё равно клоны спавнится за его пределами
using System.Collections;
using System.Collections.Generic;
using UnityEngine;



public class spawn : MonoBehaviour
{

public float speed = 5f;
public GameObject[] objs = new GameObject[3];


private void Start()
{
StartCoroutine(CreatEnemy());
}




private IEnumerator CreatEnemy()
{
while(true)
{
Instantiate(objs[UnityEngine.Random.Range(0, objs.Length)], new Vector3(UnityEngine.Random.Range(-47, -20), 2.10f, UnityEngine.Random.Range(-7, 10)), Quaternion.Euler(0, 0, 0));

yield return new WaitForSeconds(3f);

}
}

private void Update()
{
for (int i = 0; i < objs.Length; i++)
{
if (objs[i] == null)
continue;

objs[i].transform.Translate(new Vector3(1, 0, 0) * speed * Time.deltaTime);
}

}
}
1 ответ
Mr.Hale Профи (749) 2 недели назад
Проблема:
 Instantiate(objs[UnityEngine.Random.Range(0, objs.Length)], new Vector3(UnityEngine.Random.Range(-47, -20), 2.10f, UnityEngine.Random.Range(-7, 10)), Quaternion.Euler(0, 0, 0));  
Решение:
 // Получаем ссылку на пустой объект  
Transform parentTransform = transform;

// ...

// Создаем клон с локальными координатами
Instantiate(objs[UnityEngine.Random.Range(0, objs.Length)], parentTransform.TransformPoint(new Vector3(UnityEngine.Random.Range(-47, -20), 2.10f, UnityEngine.Random.Range(-7, 10))), Quaternion.Euler(0, 0, 0), parentTransform);
# Оптимизируй свой код, избегай лишних вычислений в цикле Update.
Межголоктический разумУченик (138) 2 недели назад
спасибо! ошибок стало меньше но возникла другая...
Похожие вопросы