Апдейт: это похоже совсем не правильно, нормальное решение во 2ом блоке кода.
Используется csharp
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
// Use this for initialization
void Start () {
}
public float countshere = 0f;
public float xp = 0F;
public float yp = 0.5F;
public float zp = 0F;
private GameObject[] sphr = new GameObject[10];
private int i = 0;
void Update()
{
if (countshere < 10)
{
sphr[i] = GameObject.CreatePrimitive(PrimitiveType.Sphere);
sphr[i].transform.position = new Vector3(xp, yp, zp);
sphr[i].transform.localScale = new Vector3(1F, 1F, 1F);
countshere++;
i++;
}
//sphr.transform.position = new Vector3(xp, yp, zp);
xp = xp+1;
if (xp >= 10)
{
for(i=0; i < sphr.Length ; i++)
{
Destroy(sphr[i]);
}
countshere = 0;
i = 0;
xp = 0;
}
}
}
Вот не знаю то ли тебе надо, но это явно не лучший вариант.
Изменения:
1. у тебя в коде во 2ом if нужно сравнение.
2. Добавил массив а не простую ссылку, а то все объекты кроме последнего не будут иметь ссылку.
3. Немного увеличил countshere. А то не понятно было.
4. xp float а инкрементировать можно только int.
5. Во 2м if Destroy теперь всех элементов массива ну и естественно обнуление countshere xp и i что бы все повторилось.
Небольшой апдейт.
6. Замедлил скорость.
Используется csharp
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
// Use this for initialization
void Start () {
for(int j=0; j<sphr.Length; j++)
{
sphr[j] = null;
}
}
public float countshere = 0f;
public float xp = 0F;
public float yp = 0.5F;
public float zp = 0F;
private GameObject[] sphr = new GameObject[10];
private int i = 0;
private float timeVar = 0;
void Update()
{
if (countshere < 10 && Time.time > timeVar)
{
timeVar = Time.time + 5;
sphr[i] = GameObject.CreatePrimitive(PrimitiveType.Sphere);
sphr[i].transform.position = new Vector3(xp, yp, zp);
sphr[i].transform.localScale = new Vector3(1F, 1F, 1F);
countshere++;
i++;
xp = xp+1;
}
//sphr.transform.position = new Vector3(xp, yp, zp);
if (xp >= 10)
{
for(i=0; i < sphr.Length ; i++)
{
Destroy(sphr[i]);
}
countshere = 0;
i = 0;
xp = 0;
timeVar=0;
}
}
}