public override void OnInspectorGUI() { base.OnInspectorGUI(); var mine = target as CreateManyMovingCircleObjects; int count = Mathf.Max(mine.circles.Count, mine.numberObjects); float angle = 360f / mine.numberObjects; for (int i = 0; i < count; ++i) { if (i >= mine.circles.Count) { mine.CreateCircleObject(angle * i); } else if (i >= mine.numberObjects) { for (int rI = i; rI < count; ++rI) { DestroyImmediate(mine.circles[i].gameObject); } mine.circles.RemoveRange(i, count - i); break; } else if (mine.circles[i] == null) { CircleMovingObject obj = Instantiate(mine.prefab, mine.transform); mine.circles[i] = obj; } mine.SetCircleObject(mine.circles[i], angle * i); } }
public CircleMovingObject CreateCircleObject(float angle) { CircleMovingObject obj = Instantiate(prefab, transform); SetCircleObject(obj, angle); circles.Add(obj); return(obj); }
public void SetCircleObject(CircleMovingObject obj, float angle) { float x = Mathf.Cos(Mathf.Deg2Rad * angle); float z = Mathf.Sin(Mathf.Deg2Rad * angle); obj.transform.position = new Vector3(x, 0, z) * radius + Vector3.up * height; obj.point = transform.position; obj.speedMovement = speedApply; }