예제 #1
0
    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;
    }