using UnityEngine; using System.Collections; public class CubeRotator : MonoBehaviour { // Speed of rotation public float rotationSpeed = 50f; // Cubes to rotate public GameObject[] cubes; // Start is called before the first frame update void Start() { // Assign random rotation axis to each cube foreach (GameObject cube in cubes) { Vector3 randomAxis = Random.insideUnitSphere; RotateCube(cube, randomAxis, rotationSpeed); } } // Update is called once per frame void Update() { // Cubes rotate automatically, no need to do anything in Update } // Rotate cube around its axis void RotateCube(GameObject cube, Vector3 axis, float speed) { // Start rotation coroutine for the cube StartCoroutine(RotateCoroutine(cube.transform, axis, speed)); } // Coroutine for rotating the cube IEnumerator RotateCoroutine(Transform cubeTransform, Vector3 axis, float speed) { while (true) { // Rotate the cube around its axis cubeTransform.Rotate(axis, speed * Time.deltaTime); yield return null; } } }