资源准备

网上的贴图资源较为散乱,此处提供一个太阳系贴图的网站,图片还是相当精美的:https://www.solarsystemscope.com/textures/

1、保存相应资源并导入成material:


问就是英文不好0.0(实践下来没有影响就完事了)

2、特别注意导入太阳material时,为了更逼真,我为其设置了自发光的属性,实现自发光有两种方法。
第一种:https://blog.csdn.net/qq_44148565/article/details/123117751 但是其中光的颜色还需自己调,我尝试过后发现不太自然,于是没有采用。
第二种:只需将太阳material的Shader属性改为Legacy Shaders/Self-Illumin/Diffuse即可,色调比较自然。
下图为前后对比:


但我还想要实现明显照亮其他行星的效果,所以在太阳游戏对象中再增加了一个点光源:

效果还是很明显的:


3、接着就是创建相应sphere,调整好其位置、大小等。初始化位置我统一设成在一条线上了,以便简化位置参数的调整。



脚本撰写

对于行星,要实现公转、自转以及公转法平面的设置:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Rotate : MonoBehaviour
{public GameObject target;   //天体旋转的中心public float gspeed;        //公转速度public float zspeed;        //自转速度public float ry,rz;         //通过y轴和z轴调整法平面  // Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){//旋转轴Vector3 axis = new Vector3(0,ry,rz);//公转this.transform.RotateAround(target.transform.position, axis, gspeed * Time.deltaTime);//自转this.transform.Rotate(Vector3.up * zspeed * Time.deltaTime);}
}

对于太阳,只需实现自转:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class sun_rotate : MonoBehaviour
{public float speed;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){this.transform.Rotate(Vector3.up * speed * Time.deltaTime);}
}

将脚本Rotate挂载在所有行星上,然后进行相应参数设置。以地球为例:


注意:月球的target为地球。


背景设置

背景素材在文章开头那个网站里也找得到。教程参见:https://segmentfault.com/a/1190000008505014

运行效果


Unity实现简单太阳系相关推荐

  1. Unity 制作简单的任务动画

    Unity 制作简单的任务动画 1.添加人物模型到unity 我使用的是unity store中的免费模型: https://assetstore.unity.com/packages/3d/char ...

  2. unity实现简单fps游戏功能

    unity实现简单fps游戏鼠标功能 1.unity实现瞄准镜功能 实现原理 按下鼠标右键镜头拉近,再次按下镜头拉远(设置Camrea的FOV属性) 逐渐拉近(例如:60->20逐渐拉近) 设置 ...

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

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

  4. Unity做一个太阳系

    Unity做一个太阳系(适合初学者学习) 步骤 1.新建Unity项目(我用的unity2019) 2.在assets中建script文件夹,material文件夹. 2.创造9个sphere物体:太 ...

  5. unity实现简单巡逻兵

    unity实现简单巡逻兵 游戏视频 游戏要求 创建一个地图和若干巡逻兵(使用动画): 每个巡逻兵走一个3~5个边的凸多边型,位置数据是相对地址.即每次确定下一个目标位置,用自己当前位置为原点计算: 巡 ...

  6. unity实现简单坦克对战

    unity实现简单坦克对战 游戏要求 使用"感知-思考-行为"模型,建模 AI 坦克 场景中要放置一些障碍阻挡对手视线 坦克需要放置一个矩阵包围盒触发器,以保证 AI 坦克能使用射 ...

  7. 空间与运动——简单太阳系+牧师与魔鬼

    作业内容 一.简答并用程序验证 1.游戏对象运动的本质是什么? 2.请用三种方法以上方法,实现物体的抛物线运动 3.简单太阳系 二.编程实践 1.脚本设计 2.效果图 一.简答并用程序验证 1.游戏对 ...

  8. Unity优化——简单AOI实现原理

    声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改. Unity网络--简单AOI实现原理 文章目录 Unity网络--简单AOI实现原理 一.开发 ...

  9. 最简单太阳系H5动画canvas详解 零基础可入

    最简单太阳系H5动画canvas详解 零基础可入 最终结果:(实际为动画效果,金星绕轨道转动) 页面准备/html 要使用canvas,需要首先在页面中要绘制的位置放入canvas标签元素,在后期的绘 ...

最新文章

  1. 彻底透析SpringBoot jar可执行原理
  2. 通过SQL Server 2008 访问MySQL
  3. 二级(多级)指针,二级指针和二维数组的避坑,指针面试考题
  4. python求二维数组各行最大值_python+numpy按行求一个二维数组的最大值方法
  5. JavaScript实现的水珠动画效果
  6. 获取 Web 设计的免费资源
  7. C++中文版本primer 第二章变量和基本类型 学习笔记
  8. 凯利公式自动计算表_EXCEL——可自动计算的收支表,全函数计算,拿上就用!
  9. exp.validate.js
  10. Vue中判断对象属性是否存在
  11. 自动运维化tools篇2:通过SSH信任关系,批量修改LINUX密码
  12. python的第三方库是干什么用的-Python 常用的标准库以及第三方库有哪些?
  13. 逻辑学在计算机科学的应用,逻辑学在计算机科学中的应用
  14. 矩阵求逆的几种方法总结(C++)
  15. 图片大小太大,如何快速压缩?
  16. MEC与C-V2X融合应用场景白皮书
  17. 酷睿计算机系统吗,酷睿i3和i5的区别是什么?电脑处理器i3和i5的区别介绍
  18. Vue路由守卫(拦截)
  19. 运营好社群——打造你专属的新媒体流量入口! | 黎想
  20. SQL笔试题:某团数分岗笔试真题详解

热门文章

  1. 专有钉钉 浙政钉 前端 对接流程(小程序)
  2. 关于拆项,有理函数积分,留数法
  3. 微信域名网址强制跳转至浏览器打开指定app网页
  4. ISAM error: no free disk space故障分析处理
  5. JMeter学习笔记1-安装环境
  6. linux怎么打开pak文件怎么打开,如何在 Linux 上安装并启用 Flatpak 支持?
  7. 启动计算机 gho文件,u盘里只有gho文件怎么重装win7系统图解
  8. IndexedDB基本操作学习总结
  9. halcon学习和实践(颜色筛选)
  10. 星环研发总监为你揭秘TDH8.0的前因后果 | TDH8.0 使用必读 3