其他分享
首页 > 其他分享> > Unity 星球旋转效果

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