欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Unity实现简单场景分层移动

程序员文章站 2022-03-16 20:43:54
本文实例为大家分享了unity实现简单场景分层移动的具体代码,供大家参考,具体内容如下前言开发游戏经常需要用到把前景、场景、背景等不同层级的物体进行不同速度的移动以实现真实感。效果云、建筑、地面、前景...

本文实例为大家分享了unity实现简单场景分层移动的具体代码,供大家参考,具体内容如下

前言

开发游戏经常需要用到把前景、场景、背景等不同层级的物体进行不同速度的移动以实现真实感。

效果

云、建筑、地面、前景植被各层次场景分层移动。

Unity实现简单场景分层移动

代码

using unityengine;

public class distantview : monobehaviour
{
    public gameobject follow;
    public float scaleoffset;
    public bool ishorizontal = true;
    public bool isvertical = true;
    vector2 pos;
    vector2 followpos;
    float offsetx;
    float offsety;

    private void start()
    {
        if (follow != null)
            followpos = follow.transform.localposition;
    }

    void lateupdate()
    {
        if (follow!=null)
        {
            pos = transform.localposition;

            if (ishorizontal)
            {
                offsetx = (follow.transform.localposition.x - followpos.x) * scaleoffset;
                pos.x += offsetx;
            }

            if (isvertical)
            {
                pos.y += offsety;
                offsety = (follow.transform.localposition.y - followpos.y) * scaleoffset;
            }

            transform.localposition = pos;
            followpos = follow.transform.localposition;
        }
        
    }
}

用法

将不同层级的物体放入不同的父物体下分别管理。

Unity实现简单场景分层移动

给每个父物体挂上脚本。

Unity实现简单场景分层移动

follow为跟随的基准对象。(比如玩家,相机等)
scaleoffset为移动速率,1为和目标移速一致,越小越慢,越大越快。0为不移动,负值为反向移动。(前景可能要用到负值)
hor和ver为跟随哪个轴。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。