如何在 Unity 中围绕球体动态创建多条轨道路径
How to create multiple orbital paths around a sphere dynamically in Unity
我正在创建一个原子模拟器类的项目。所以我目前正在做的是周期性的 table 当用户点击任何元素时,我将为该元素生成一个球体游戏对象(即原子)。现在原子周围有不同 shell 配置的电子。我正在尝试模拟这种效果。我能够围绕球体(原子)创建一个单一的轨道路径,并产生一个很好地围绕原子旋转的电子球体。
这是它的样子
我正在使用以下代码执行此操作。
// Update is called once per frame
void Update () {
//transform.Rotate(Vector3.up, rotationSpeed * Time.deltaTime);
transform.RotateAround(rotateAround.position, Vector3.forward, rotationSpeed);
}
现在我尝试在原子周围设置多个轨道路径(如 n shell、p shell 等)。我尝试向旋转方法中传递的变换添加一些偏移量,但路径不是完全圆形的。
那么我怎样才能创造出这样的东西呢。
您必须在代码中的某处生成电子。
找到那段代码并执行以下操作:
- 将电子的位置设置为质子的位置。
- 使用以下代码将其向左移动
p
个单位:transform.position += p * Vector3.left
。
- 您的
Update()
方法将处理旋转。您可以通过将 Vector3.forward
更改为随机 new Vector3(x, y, z)
来进一步优化它,这样包含轨道的平面也会旋转,从而产生更逼真的效果。
我正在创建一个原子模拟器类的项目。所以我目前正在做的是周期性的 table 当用户点击任何元素时,我将为该元素生成一个球体游戏对象(即原子)。现在原子周围有不同 shell 配置的电子。我正在尝试模拟这种效果。我能够围绕球体(原子)创建一个单一的轨道路径,并产生一个很好地围绕原子旋转的电子球体。
这是它的样子
我正在使用以下代码执行此操作。
// Update is called once per frame
void Update () {
//transform.Rotate(Vector3.up, rotationSpeed * Time.deltaTime);
transform.RotateAround(rotateAround.position, Vector3.forward, rotationSpeed);
}
现在我尝试在原子周围设置多个轨道路径(如 n shell、p shell 等)。我尝试向旋转方法中传递的变换添加一些偏移量,但路径不是完全圆形的。
那么我怎样才能创造出这样的东西呢。
您必须在代码中的某处生成电子。 找到那段代码并执行以下操作:
- 将电子的位置设置为质子的位置。
- 使用以下代码将其向左移动
p
个单位:transform.position += p * Vector3.left
。 - 您的
Update()
方法将处理旋转。您可以通过将Vector3.forward
更改为随机new Vector3(x, y, z)
来进一步优化它,这样包含轨道的平面也会旋转,从而产生更逼真的效果。