Unity 小项目:模拟太阳系

太阳系是以太阳为中心,和所有受到太阳的引力约束天体的集合体。包括八大行星(由离太阳从近到远的顺序:水星、金星、地球、火星、木星、土星、天王星、海王星 )、以及至少173颗已知的卫星、5颗已经辨认出来的矮行星和数以亿计的太阳系小天体。

文章目录

  • Unity 小项目:模拟太阳系
    • 1. 准备资源
    • 2. 布置场景
    • 3. 编辑脚本

1. 准备资源

由于太阳系的卫星以及小天体数目庞大,在本项目中,只模拟太阳和八大行星,以及地球的卫星月球。首先在网上搜索太阳系贴图,这里需要提醒一下大家,搜索的贴图不能是星球的照片,比如这种:

否则覆盖到球体上就有黑色部分,会显得很奇怪。下面是在网上找到的所有贴图

然后就要制作Material了。八大行星和月球的Material比较简单,而太阳和它们不一样,太阳是一个恒星,它本身可以发光,这才照亮了太阳系中其他天体。所以在太阳的Material中,我们修改其Shader为如图所示的Self-Illumin,即自发光

下图是准备好的Material

2. 布置场景

建立十个球体,分别表示太阳,八大行星和月亮。按照大致的比例调整各个星球的大小距离即可。

在太阳系中,太阳是唯一光源,删除Directional Light后会显得比较合乎实际,但是我们会发现,场景中只有太阳是亮的,它并没有发出光照亮其他天体,所以我们在太阳中添加子物体Point Light,调整其亮度和范围。然后将Main CameraClear Flags属性改为Solid Color,并且将背景色改为黑色,这样运行起来,我们的太阳系就仿佛在浩瀚的宇宙中。

3. 编辑脚本

实现各天体公转、自转的代码比较简单。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Rotate : MonoBehaviour {public Transform origin; //各天体公转的圆心public float gspeed;      //公转速度public float zspeed;      //自转速度public float ry, rz;      //通过y轴、z轴调整公转的偏心率,使其不在同一平面公转void Start() {}void FixedUpdate () {Vector3 axis = new Vector3 (0, ry, rz);     //公转轴this.transform.RotateAround (origin.position, axis, gspeed * Time.deltaTime);  //公转this.transform.Rotate (Vector3.up * zspeed * Time.deltaTime);       //自转}
}

将代码附到各天体上,分别设置好其公转速度,自转速度,公转偏心率**(错误:应该为公转平面的法线,偏心率是用于表示轨道形状,多谢评论指出)**,八大行星公转的圆心为太阳,月球的则是地球。最终的效果:

上图是按照八大行星的实际偏心率所做出的效果,各天体轨道几乎在同一平面上,如果想要效果更明显一点,只需要稍稍修改各天体rz/ry的值就可以了。

Unity 小项目:模拟太阳系相关推荐

  1. 前端小项目——模拟微信界面对话框

    最近看网课做了个小项目,用到了前端很多知识点 用到的知识点: HTML知识点: div大盒子,id为contentALL:包含所有的内容 div头部小盒子,id为header:包含整个对话框的头部信息 ...

  2. [Unity小项目]3D像素跑酷游戏

    FFFFFlipping 1. 游戏截图 [待补充]>>>emm录制gif的时候出错了- 2. APK下载 FFFFFlipping-V1.1.apk 3. 怎么玩? 点键help按 ...

  3. [Unity小项目]俄罗斯方块

    Unity实现俄罗斯方块 Demo: 使用方法: 安卓手机: 直接点击游戏界面按钮 Editor: 直接点击play 开发环境: Unity2018.1 部分实现介绍 UI界面使用的MVC架构 Vie ...

  4. 2022unity超简单课设-模拟太阳系的Unity小游戏

    模拟太阳系的Unity小游戏(附下载链接) 下载链接 unity课程实践做的一个模拟太阳系的Unity小游戏,你可以使用飞船移动来查看太阳系中的各个星球. 飞船拥有两种驾驶模式,一种更加真实,是通过给 ...

  5. Unity实战——模拟太阳系

    unity实战--模拟太阳系 项目源码 最终效果 Unity模拟太阳系效果 搭建简易太阳系 定义九个球体,命名如下: 加上贴图,调整大小: 各种参数设置如下: Object Position Scal ...

  6. Unity小游戏-平衡大师(安卓、PC、web)2D益智类游戏 项目展示+完整项目源码

    游戏录像 游戏试玩 平衡带师_平衡带师html5游戏_4399h5游戏-h.4399.com 游戏玩法 这是一款类似堆积木的游戏,它非常考验玩家的智商和手速,难度系数很高的游戏,谁能征服它,谁就是平衡 ...

  7. Unity小游戏-彩笔画师(安卓、PC)2D益智类游戏 项目展示+完整项目源码

    游戏录像 游戏玩法 谁画在屏幕上占的颜色最多,谁获胜. 功能 1.游戏有多个关卡,每个关卡的人机难度不一致. 2.可以存金币购买角色,不同角色的技能和属性不一样. 3.每个关卡的评分等数据存到本地. ...

  8. Unity小游戏-惊爆游戏(PC)3D联网大逃杀游戏 项目展示+完整项目源码

    游戏录像 游戏玩法 1.类似吃鸡的小游戏,但是这里没有毒圈,武器只有炸弹,没有枪. 2.游戏开始后所有人的体力会不断下降,当体力下降到0就会死亡. 3.玩家只有吃食物增加体力才能活下去,而食物只能通过 ...

  9. 模拟QQ聊天小项目收尾---界面展示服务端与客户端进行信息交互(用到的知识:io,线程,Swing界面,面向对象思想...... )

    大家好,我是一位在java学习圈中不愿意透露姓名并苟且偷生的小学员,如果文章有错误之处,还望海涵,欢迎多多指正 如果你从本文学到有用的干货知识,那么请您尽量点赞,关注,评论,收藏 这两天我一直在设计这 ...

最新文章

  1. Ant Design Pro 登录流程以及路由权限设置
  2. 程序员入错行怎么办?
  3. 动圈耳机振膜_耳机中的动圈、动铁、圈铁都是什么意思 买哪种最好?
  4. MATLAB机器学习系列-11:粒子群优化原理及其matlab实现
  5. python拟合曲线的方式,Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】...
  6. c 语言中 %是什么运算符,C 语言基础----详解C中的运算符
  7. ionic 组件之二维码扫描
  8. mug网络用语_各种游戏术语
  9. 在JAR中打包使用JAR库
  10. 2018.07.25 bzoj2125: 最短路(圆方树+倍增)
  11. Vbs调用MsAgent组件,很有趣
  12. 高效实用Chrome浏览器,这份Top 20插件榜对你肯定有帮助
  13. 计算机网络1MB等于多少b,1mb等于多少kb?MB转化KB的算法 - 驱动管家
  14. org.apache.ibatis.binding.BindingException: Mapper method 'com.hahah.atcrowdfunding.manager.dao.Cert
  15. 我心中的计算机作文500,我心中的太阳作文500字(通用10篇)
  16. 论文阅读笔记(4):Local Convex Representation with Pruning for Manifold Clustering ,带剪枝的局部凸表达进行流形聚类
  17. 用C语言编写一个电话簿管理系统
  18. 软件调试系列:软件崩溃篇之内存异常崩溃
  19. 垂直水平居中的几种方式
  20. 3D-Max 软件许可证检出失败 错误20 解决办法

热门文章

  1. isolation设定事物的隔离级别
  2. jquery 移动到对应元素_Jquery实现拖拽可编辑模块
  3. Tokitsukaze and Good 01-String (easy version)
  4. 万字长文分析AQS原理以及应用
  5. Win XP系统文件损坏/丢失 修复方法
  6. centos退出mysql命令_Centos 进入与退出数据库命令,其他命令大全
  7. 对极限定义的理解_宏观区间和微观区间_20160326
  8. C语言根据输入年份和月份来判断该月的天数?(switch)
  9. 店铺人群标签怎样强化,如何检测自己店铺标签是否精准?
  10. Android Studio在类微信程序完成“蓝牙聊天功能”实现蓝牙通信