fxvArrangeChildrenInCircle.cs 848 B

12345678910111213141516171819202122232425262728
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace FXV.FogDemo
  5. {
  6. [ExecuteInEditMode]
  7. public class fxvArrangeChildrenInCircle : MonoBehaviour
  8. {
  9. [SerializeField]
  10. float circleRadius = 31.0f;
  11. void OnValidate()
  12. {
  13. float angle = 0.0f;
  14. float angleStep = Mathf.PI * 2.0f / (transform.childCount);
  15. for (int i = 0; i < transform.childCount; ++i)
  16. {
  17. Transform child = transform.GetChild(i);
  18. child.transform.position = transform.position + new Vector3(Mathf.Cos(angle) * circleRadius, 0.0f, Mathf.Sin(angle) * circleRadius);
  19. child.transform.rotation = Quaternion.Euler(0.0f, -angle * (180.0f / Mathf.PI), 0.0f);
  20. angle += angleStep;
  21. }
  22. }
  23. }
  24. }