微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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);
    }
}

由于月球属于地球的子级,所以地球自转实际上是让地月系统围绕地球自转,而且月球也始终一面朝向地球,这也贴合实际,所以不需要给月球再加自转和公转。
如果给木星,火星这样行星的卫星添加代码只需要给他们添加一个自转就好。
剩下的行星卫星请大家自己尝试做一下,不需要创建更多的代码,只需要写在后面就好。重点搞清父子级别

感谢大家的点赞!!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐