搜狐首页 无线 明日传奇2

[专栏作家]游戏中的时间倒回系统

ThePlayer玩家

首先,在场景中创建一个立方体,作为我们的角色。再创建一个名为Player.cs的C#脚本,加一个如下的Update()函数:

这个脚本通过健盘上的上下健产生简单的移动,把这个脚本绑定到立方体上。当你点击Play运行,你就能够移动。

倾斜相机,当我们移动时,以便可以从上面观察立方体。最后,创建一个Floor的面,两个物体使不用同的材质便於觀察;

时间控制TimeController

现在创建一个新的C#脚本,命名为TimeController.cs,创建一个空的GameObject,绑定脚本。脚本处理实时记录和随时倒回游戏。

为了让它运行,我们会记录玩家的所有移动。当我们按下倒回按钮时,可以修正玩家的坐标。脚本如下:

在启动的时候,新加的代码自动在场景中到TimeController对象,在整个运行过程中检查它是在倒回还是在移动。只有当不在倒回状态下,我们才可以控制移动物体。

此外,还需要另一个数据来存储旋转值,在最开始的时候初始化它,在处理位置数据的地方保存和应用数据。最后代码如下:

记录少量的数据,使用插入值

现在,我们每秒要记录50次,Player的位置和旋转数据。这个数据量太大了,一些移动设备上处理能力相对较低,复杂游戏使用这种数据量会变得特别的引人注意。

使用一个自定义类来保存Player数据

现在我们是使用的两个数据来存player的位置和旋转。这样做的话,我们需要记得 记录和取数据 同时有两个地方,这会产生潜在的问题。我们可以怎么做呢,创建一个单独的类来存存这些数据。

经过改良,代码如下:

精选