void CreateBackgroundCubes(int cnt, int disabledCount) { if (prefabBackCube == null) { return; } for (int i = 0; i < cnt; ++i) { GameObject obj = Instantiate(prefabBackCube, new Vector3(0, 0, 0), Quaternion.identity); BackCube cube = obj.GetComponent <BackCube>(); cube.mBackground = this; UpdateRandomCubePos(cube, mOldRect); mBackCubes.Add(cube); } for (int i = 0; i < disabledCount; ++i) { GameObject obj = Instantiate(prefabBackCube, new Vector3(0, 0, 0), Quaternion.identity); BackCube cube = obj.GetComponent <BackCube>(); UpdateRandomCubePos(cube, mOldRect); cube.gameObject.SetActive(false); mBackCubes.Add(cube); } }
void UpdateRandomCubePos(BackCube cube, Rect range) { Vector3 axis = new Vector3(); axis.x = Random.Range(-1, 1); axis.y = Random.Range(-1, 1); axis.z = Random.Range(-1, 1); axis.Normalize(); float angle = Random.Range(0, 360); cube.transform.rotation = Quaternion.AngleAxis(angle, axis); Vector3 pos = GetRandomPos(range); cube.SetPosition(MainCube, pos); }