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為跟隨哪個軸。
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。