请选择 进入手机版 | 继续访问电脑版

[C#教程] Unity实现简单场景分层移动

[复制链接]
查看99 | 回复8 | 2021-9-14 10:31:26 | 显示全部楼层 |阅读模式

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

媒介

开辟 游戏常常 必要 用到把远景 、场景、背景等不同层级的物体举行 不同速率 的移动以实现真实感。

效果

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

Unity实现简单场景分层移动

代码

  1. using UnityEngine;
  2. public class DistantView : MonoBehaviour
  3. {
  4. public GameObject follow;
  5. public float scaleOffset;
  6. public bool isHorizontal = true;
  7. public bool isVertical = true;
  8. Vector2 pos;
  9. Vector2 followPos;
  10. float offsetX;
  11. float offsetY;
  12. private void Start()
  13. {
  14. if (follow != null)
  15. followPos = follow.transform.localPosition;
  16. }
  17. void LateUpdate()
  18. {
  19. if (follow!=null)
  20. {
  21. pos = transform.localPosition;
  22. if (isHorizontal)
  23. {
  24. offsetX = (follow.transform.localPosition.x - followPos.x) * scaleOffset;
  25. pos.x += offsetX;
  26. }
  27. if (isVertical)
  28. {
  29. pos.y += offsetY;
  30. offsetY = (follow.transform.localPosition.y - followPos.y) * scaleOffset;
  31. }
  32. transform.localPosition = pos;
  33. followPos = follow.transform.localPosition;
  34. }
  35. }
  36. }
复制代码

用法

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

Unity实现简单场景分层移动

给每个父物体挂上脚本。

Unity实现简单场景分层移动

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

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


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 几器那午 | 2021-9-14 13:24:20 | 显示全部楼层
admin楼主很有艺术范!
回复

使用道具 举报

avatar 123457021 | 2021-9-26 18:23:20 | 显示全部楼层
有内涵!
回复

使用道具 举报

avatar 找食的麻雀粮 | 2021-10-13 01:24:52 | 显示全部楼层
态度决定一切,不错!
回复

使用道具 举报

avatar 今生有你2017 | 2021-10-16 00:56:57 | 显示全部楼层
顶一个!
回复

使用道具 举报

avatar 老橡树1 | 2021-10-16 22:19:25 | 显示全部楼层
在哪里跌倒,就在那里多爬一会儿!
回复

使用道具 举报

十分赞同admin楼主!
回复

使用道具 举报

经典,收藏了!
回复

使用道具 举报

admin楼主加油,看好你哦!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则