查看: 1186|回复: 0
打印 上一主题 下一主题

[其他] 背景通过UV坐标偏移滚动

[复制链接]
may    

8830

主题

80

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
52328
精华
343

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2016-7-28 21:47:50 |只看该作者 |倒序浏览
有一些朋友要做跑酷游戏,而背景是一直在动的,如果背景是重复出现的话,一般是用两张甚至多张背景来做拼接,但这样就对坐标要控制得极其精准才不会出现裂缝或者重叠,这里提供一种移动UV坐标的方法来实现背景无缝重复出现的方法,代码如下:
  1. private Renderer _Renderer;
  2. private const string TEX_OFFSET_PROPERTY = "_MainTex";
  3. private float _BackgroundSpeed = 0.1f;
  4. private Vector2 _BackgroundOffset = Vector2.zero;

  5. private void UpdateBackground() {
  6.         float y = Mathf.Repeat( Time.time * _BackgroundSpeed, 1f );
  7.         _BackgroundOffset.x = 0f;
  8.         _BackgroundOffset.y = y;
  9.         _Renderer.sharedMaterial.SetTextureOffset( TEX_OFFSET_PROPERTY, _BackgroundOffset );
  10.     }
复制代码
  如代码所示,这种适用于竖版游戏,就是UV变动是在Y轴上的,如果要横版,改X轴即可
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

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

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-9-22 07:20 , Processed in 0.371604 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部