【发布时间】:2019-05-13 19:09:30
【问题描述】:
我试图通过实例化立方体来生成一个球体。对于初学者来说,这听起来很容易——当然,我是在讽刺——但我在https://docs.unity3d.com/Manual/InstantiatingPrefabs.html 找到了一个例子——只不过它只是一个圆圈:
理想情况下,我希望生成器/代码也将立方体转换为并排放置(没有间距;或可配置间距),并具有多行,以便它们形成一个实心球体。所以我认为代码需要同时转换立方体的外表面和内表面。
如何做到这一点?这是圆圈的代码:
using UnityEngine;
public class CubeSphere : MonoBehaviour {
// Instantiates prefabs in a circle formation
public GameObject prefab;
public int numberOfObjects = 4;
public float radius = 5f;
void Start() {
for (int i = 0; i < numberOfObjects; i++) {
float angle = i * Mathf.PI * 2 / numberOfObjects;
float x = Mathf.Cos(angle) * radius;
float z = Mathf.Sin(angle) * radius;
Vector3 pos = transform.position + new Vector3(x, 0, z);
float angleDegrees = -angle * Mathf.Rad2Deg;
Quaternion rot = Quaternion.Euler(0, angleDegrees, 0);
Instantiate(prefab, pos, rot);
}
}
}
额外问题:是否也可以弯曲预制件(如曲面屏幕),从而得到一个非常光滑的预制件球体?
【问题讨论】:
标签: c# visual-studio unity3d 3d