Unity无缝循环世界实现

一年前曾经碰到过已无限世界为题材的游戏开发比赛,虽然对比赛没有兴趣,但是对这个题材倒是有点想法。如何通过unity3d实现无缝的循环世界呢。

有一种想法是动态生成,一块场景一块场景进行动态加载。(做过2D背景地图加载的可能理解,不展开)

如果是单场景,有没有简单的办法呢?思来想去,总算找到一种办法,4个相机图像叠加法

人物置于一个相机上,移动时,相机也移动,旋转时,相机也旋转。

当人物超出地形边缘的时候,则从另外一个边缘出现,同时设置到另外一边的相机上。

当相机超出2个地形边缘的时候,则从另外一边出现,这样就可以形成无缝的效果

注意的地方是,每次人物位置变更的时候,所有相机的depth值都需要重新按照距离远近重新设置

开源工程地址:http://git.oschina.net/CodeGize/Endless

时间: 2024-10-05 22:28:57

Unity无缝循环世界实现的相关文章

一种实现无缝循环播放音乐方案

场景: 为了节省页面资源,往往需要将一段小音频循环播放,通常做法是在audio标签上添加loop属性,但不幸的是,该属性并不能保证无缝循环(gapless looping)播放,明显的感觉到中间的停顿. 解决方案: 使用audio标签的Web API提供的方法和属性进行循环播放,具体如下 事件名称 事件作用 timeupdate 当前播放的时长发生改变时触发     属性名称 属性作用 currentTime                 用来获取或控制当前播放的时间,单位为s duratio

js 图片无缝循环

<html> <head> <title>Js图片无缝滚动</title> <style type="text/css"> body{ background:gray; } #wrap{ width:810px; height:200px; border:1px solid black; position:relative; left:50%; top:50%; margin-left:-410px; margin-top:-

将Unity中的世界坐标转换成NGUI中的坐标

将Unity中的世界坐标转换成NGUI中的坐标,比如可用于自制血条等.代码如下: 1 using UnityEngine; 2 using System.Collections; 3 public class Healthbar : MonoBehaviour { 4 public GameObject TargetObject; //目标物体.这里是指Cube 5 public Camera worldcamera; //世界相机. 6 public Camera guiCamera; //U

unity3d 音频无缝循环

在我做赛车漂移的时候,漂移的声音断断续续的,搞得我很郁闷 大家可以随便找个音效然后循环播放去仔细听 你会发现当音效播放完成一次之后循环播放第二次时会停顿一下 我做赛车漂移如果中途停顿了体验是非常不好的,所以我就开始找原因 首先检查音效,没问题 检查代码.写测试代码,还是没问题 难道是u3d的bug?不是说好的循环吗,为啥会有停顿 后来在官方文档中看到一个Gapless looping(无缝循环)参数!! soga,原来本来就有这个选项,心想终于可以得到解决了 可是事情好像没那么简单 Gaples

超简单的纯CSS图片无缝循环方法

首先效果如下. 效果就是若干长图通过视口,并且第一张和最后一张要无缝衔接. 接着原理图如下.真的,超简单... 注意:第一张和最后一张必须要是同一张图,这样才能无缝衔接. 如果视口大于每张图片,那就有必要第1,2甚至3张和倒数第3,2,1张相同,这样才能在视口大于图片的情况下完成完成衔接. 从右往左滚动,或者垂直方向滚动效果稍加变动代码即可实现. 代码如下 <!DOCTYPE html> <html> <head lang="en"> <met

Android实现OGG音频的无缝循环播放

说来惭愧,到最后好像自己也没做到些什么出来. 因为工作需求,需要实现同时对多首OGG音频进行无缝循环播放. 我尝试过在Java层用Java解码OGG文件,那效率就不说了,想崩溃就用吧:D 后来用本地代码尝试,但我最终只实现了单线程解码并播放,基于OGG解码库和OpenAL播放,而且是解码完再播放. 其实思路是很简单的,一边解码一边把解码后的数据放进播放器缓存播放就是了.但是由于时间关系后面的没做到. 最后在偶然之下发现BASS库 BASS Library:http://www.un4seen.c

Swift - 多层无缝循环滚动背景(SpriteKit游戏开发)

在游戏开发中,比如跑酷游戏.我们需要实现背景的无限循环滚动,来营造运动的效果.除了单层的背景滚动,还有视差滚动. 视差滚动是指让多层背景以不同的速度移动,形成立体的效果,从而带来非常出色的视觉体验. 样例说明: 1,本样例背景分为两层.第一层更靠近游戏窗口的色彩更鲜艳,移动速度也更快一些.第二层由于要模拟远处的场景,所以颜色也更淡一些,对比度更弱一些,移动速度也更慢一些. 2,要实现循环滚动.我们准备的背景图首尾是要可以无缝衔接的. 3,判断需要多少张无缝衔接图来组成背景?判断标准是:当第一张图

js实现无缝循环滚动

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>无缝滚动</title> </head> <style type="text/css"> .row{ width: 1298px; height: 400px; border: 1px solid; box-sha

unity 主循环

在unity官方文档中看到这个图,感觉很有用,各事件的先后时机看得较清楚. 连接:http://docs.unity3d.com/Manual/ExecutionOrder.html