Unity 星球旋转效果
作者:互联网
首先创建一个工程,新建三个球体,大小比例无所谓,可以贴合实际。
这里只做三个,当作示例,
让一个当作太阳,一个当作地球,一个当作月球
另外也可以搜一些图片加上贴图。
将他们的位置摆放到相对应的位置上
层级太阳为地球的父级,月球为地球的子级,命名必须相同,代码中会用到Find
然后新建一个代码
如何实现星球的自传和公转,这里我们需要用到 Rotate
最后只需要将代码绑定到太阳上就行。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class plantMove : MonoBehaviour
{
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void FixedUpdate()
{
//太阳的自转
GameObject.Find("Sun").transform.Rotate(Vector3.up * Time.deltaTime * 5);
//设置地球公转的方向和速度 方向轴为(0, 1, 0) 速度为 0.5f
GameObject.Find("Earth").transform.RotateAround(Vector3.zero, new Vector3(0, 1, 0), 0.5f * Time.deltaTime);
//设置地球自转 自转速度为100
GameObject.Find("Earth").transform.Rotate(Vector3.up * Time.deltaTime * 100);
}
}
由于月球属于地球的子级,所以地球自转实际上是让地月系统围绕地球自转,而且月球也始终一面朝向地球,这也贴合实际,所以不需要给月球再加自转和公转。
如果给木星,火星这样行星的卫星添加代码只需要给他们添加一个自转就好。
剩下的行星卫星请大家自己尝试做一下,不需要创建更多的代码,只需要写在后面就好。重点搞清父子级别
感谢大家的点赞!!!
标签:代码,Vector3,旋转,自转,地球,Unity,月球,星球,Find 来源: https://blog.csdn.net/hu1262340436/article/details/113694520