Unity实现简单场景分层移动

 更新时间:2021年09月07日 16:40:13   作者:我寄人间雪满头丶  
这篇文章主要为大家详细介绍了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;
        }
        
    }
}

用法

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

给每个父物体挂上脚本。

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

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

相关文章

  • C#中Dictionary的作用及用法讲解

    C#中Dictionary的作用及用法讲解

    这篇文章主要介绍了C#中Dictionary的作用及用法讲解,本文还对dictionary类用什么接口实现、Dictionary的基本用法做了讲解,需要的朋友可以参考下
    2014-10-10
  • C#实现HTTP下载文件的方法

    C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • C#获取硬盘序列号的问题小结

    C#获取硬盘序列号的问题小结

    本文给大家分享C#获取硬盘序列号的问题及解决方法,非常不错,需要的朋友参考下
    2016-12-12
  • Unity摇杆制作的方法

    Unity摇杆制作的方法

    这篇文章主要为大家详细介绍了Unity摇杆制作的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • C#中的数组作为参数传递所引发的问题

    C#中的数组作为参数传递所引发的问题

    这篇文章主要介绍了C#中的数组作为参数传递所引发的问题 的相关资料,需要的朋友可以参考下
    2016-03-03
  • .Net中的json操作类用法分析

    .Net中的json操作类用法分析

    这篇文章主要介绍了.Net中的json操作类用法分析,是非常实用的一个技巧,需要的朋友可以参考下
    2014-08-08
  • C#获取远程XML文档的方法

    C#获取远程XML文档的方法

    这篇文章主要介绍了C#获取远程XML文档的方法,涉及C#文件传输与XML文档操作相关技巧,需要的朋友可以参考下
    2016-01-01
  • C#实现char字符数组与字符串相互转换的方法

    C#实现char字符数组与字符串相互转换的方法

    这篇文章主要介绍了C#实现char字符数组与字符串相互转换的方法,结合实例形式简单分析了C#字符数组转字符串及字符串转字符数组的具体实现技巧,需要的朋友可以参考下
    2017-02-02
  • C#把写好的类编译成dll文件的操作方法

    C#把写好的类编译成dll文件的操作方法

    在C#中,DLL文件是一种可重用的代码库,它包含了已编译的函数、类、数据和资源,DLL文件可以被多个应用程序共享和重用,这样可以提高代码的复用性和可维护性,所以本文给大家介绍了C#如何把写好的类编译成dll文件,需要的朋友可以参考下
    2024-09-09
  • 简单聊聊C#的线程本地存储TLS到底是什么

    简单聊聊C#的线程本地存储TLS到底是什么

    C#的ThreadStatic是假的,因为C#完全是由CLR(C++)承载的,言外之意C#的线程本地存储,用的就是用C++运行时提供的 __declspec(thread)或__thread来虚构的一套玩法,下面我们就来深入讲讲C#的线程本地存储TLS到底是什么吧
    2024-01-01

最新评论