模拟太阳系

模拟太阳系今天来模拟太阳系 我们知道 太阳系包括太阳 水星 金星 地球 火星 木星 土星 天王星 海王星 为了模拟太阳系 首先我查找了一些相关参数 因为只是简单模拟 所以我只是依据它们的周期比例简单的为它们的旋转速度赋了值

大家好,我是讯享网,很高兴认识大家。

今天来模拟太阳系
我们知道,太阳系包括太阳,水星,金星,地球,火星,木星,土星,天王星,海王星。
为了模拟太阳系,首先我查找了一些相关参数
这里写图片描述
讯享网

因为只是简单模拟,所以我只是依据它们的周期比例简单的为它们的旋转速度赋了值。

这里写图片描述

using System.Collections; using System.Collections.Generic; using UnityEngine; public class RoundSun : MonoBehaviour { public Transform 太阳; public Transform 水星; public Transform 金星; public Transform 地球; public Transform 火星; public Transform 木星; public Transform 土星; public Transform 天王星; public Transform 海王星; float[] v1 = new float[8]; float[] v2 = new float[8]; // Use this for initialization void Start () { 太阳.position = Vector3.zero; 水星.position = new Vector3(4, 0, 0); 金星.position = new Vector3(6, 0, 0); 地球.position = new Vector3(8, 0, 0); 火星.position = new Vector3(10, 0, 0); 木星.position = new Vector3(12, 0, 0); 土星.position = new Vector3(14, 0, 0); 天王星.position = new Vector3(16, 0, 0); 海王星.position = new Vector3(18, 0, 0); for (int i = 0; i < 8; i++) { v1[i] = Random.Range(1, 360); v2[i] = Random.Range(1, 360); } } // Update is called once per frame void Update () { // 水星 水星.RotateAround(太阳.position, new Vector3(0, v1[0], v2[0]), 10 * Time.deltaTime); 水星.Rotate(Vector3.up * 300 * Time.deltaTime); // 金星 金星.RotateAround(太阳.position, new Vector3(0, v1[1], v2[1]), 15 * Time.deltaTime); 金星.Rotate(Vector3.up * 900 * Time.deltaTime); // 地球 地球.RotateAround(太阳.position, new Vector3(0, v1[2], v2[2]), 20 * Time.deltaTime); 地球.Rotate(Vector3.up * 30 * Time.deltaTime); // 火星 火星.RotateAround(太阳.position, new Vector3(0, v1[3], v2[3]), 40 * Time.deltaTime); 火星.Rotate(Vector3.up * 30 * Time.deltaTime); // 木星 木星.RotateAround(太阳.position, new Vector3(0, v1[4], v2[4]), 50 * Time.deltaTime); 木星.Rotate(Vector3.up * 15 * Time.deltaTime); // 土星 土星.RotateAround(太阳.position, new Vector3(0, v1[5], v2[5]), 60 * Time.deltaTime); 土星.Rotate(Vector3.up * 15 * Time.deltaTime); // 天王星 天王星.RotateAround(太阳.position, new Vector3(0, v1[6], v2[6]), 65 * Time.deltaTime); 天王星.Rotate(Vector3.up * 15 * Time.deltaTime); // 海王星 海王星.RotateAround(太阳.position, new Vector3(0, v1[7], v2[7]), 70 * Time.deltaTime); 海王星.Rotate(Vector3.up * 15 * Time.deltaTime); } } 

讯享网

由于所有行星不可能都在同一轨道公转,而我又不可能知道它们的轨道是什么样的,所以就用随机数Random来模拟

将该脚本挂载到太阳上,并把相应参数拖入,运行,即可看到玄幻的太阳系模拟!

这里写图片描述

这里写图片描述

这里写图片描述

若有疑问或者问题,请多多提出,感谢!

小讯
上一篇 2025-02-11 20:06
下一篇 2025-04-10 16:15

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/116064.html