300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java绘制地球绕太阳转_Unity3D 公转小案例:地球围绕太阳转

java绘制地球绕太阳转_Unity3D 公转小案例:地球围绕太阳转

时间:2023-05-15 18:09:02

相关推荐

java绘制地球绕太阳转_Unity3D 公转小案例:地球围绕太阳转

公转指的是什么?

公转(英语:Orbital revolution),是指一物体以另一物体为中心,沿一定轨道所作的循环运动;所沿着的轨道可以为圆、椭圆、双曲线或抛物线。在天文学上,一般用来形容行星、彗星等星体环绕恒星;卫星、人造卫星等环绕行星;小规模星系、星云、宇宙尘埃等环绕大规模星系;以及更大规模的天体间环绕的运动。

如图为地球围绕太阳公转。

制作模拟(地球围绕太阳)公转步骤:

(1)建立地球和太阳模型

首先Create以下游戏对象:两个Sphere,一个Direction Light;并将其中一个Sphere命名为Earth,另一个Sphere命名为Sun;设置Sun的Scale为(3,3,3),让太阳这个大球体显得大一点;而将Earth的Position设置为(5,0,0),让Earth显示在太阳的右边;

(2)为太阳添加材质球

为了让太阳更像太阳一点,我们在Project中Create一个Material(材质,所谓材质就是修饰游戏对象的),命名为SunMaterial,这里主要是为太阳增加一个颜色。

选中SunMaterial,双击Main Color,弹出颜色选择器,在颜色选择器中选则一个深黄色的区域。

(3)为地球添加贴图

为了让地球更像地球一点,这里我们为地球增加一个背景图片—地球贴图。(可以从网上搜索下载)下载完成之后,将地球贴图拖动到项目中,最后将贴图拖动到Earth对象上。最后效果如下图所示。

(4)建立运行脚本代码

新增一个C# Script,命名为EarthControl。双击该脚本文件,在编辑器中写入以下代码。

这里要注意,常用的游戏对象一般设置为全局变量,并且在Start方法中进行初始化(这里是通过GameObject的Find静态方法获取,你可以理解为JavaScript的Dom操作GetElementById("Earth"))。游戏对象的transform组件用于控制物体的位置,旋转和缩放。

1 usingUnityEngine;2 usingSystem.Collections;3

4 public classEarthControl : MonoBehaviour5 {6 //定义游戏对象

7 publicGameObject earth;8 publicGameObject sun;9

10 //Use this for initialization

11 voidStart()12 {13 //启动时获取游戏对象

14 earth = GameObject.Find("Earth");15 sun = GameObject.Find("Sun");16 }17

18 //Update is called once per frame

19 voidUpdate()20 {21 //使地球对象围绕着太阳旋转

22 earth.transform.RotateAround(sun.transform.position, Vector3.up, 0.3f);23 }24 }

使用RotateAround()方法,让地球始终围绕着太阳在Y轴方向旋转。参数1表示围绕旋转参照点的位置(太阳的位置),参数2表示围绕旋转的角度,Vector3.up就是表示Y轴旋转,参数3表示一次旋转的速度(long类型,越大则越快)。

(5)绑定脚本并运行

脚本写好之后,将该脚本拖动到Earth上进行绑定。最后,点击预览按钮,即可看到地球围绕太阳转的效果了。

本篇中用到了空间几何等知识,参考文献:👉

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。