列出录制播放器的动作

问题描述 投票:0回答:1

[我目前正在尝试测试2D概念,该概念涉及与“过去的自我”或玩家的克隆体一起完成关卡。

[我的最初想法是只记录变换位置并相应地移动克隆,但这不允许您与过去的自我进行互动并产生悖论(这是使级别失败的一种方法)

因此,我需要记录播放器的输入(左,右,抓取,跳跃和蹲伏),然后在播放器的副本上实例化它们,该副本将仅从记录列表而不是键盘上播放输入。唯一的问题是我仍在努力掌握清单,因此我需要有关如何添加到清单的帮助。

CloneMovement(布尔跳转,布尔克劳奇,布尔左,布尔右,布尔抓斗,布尔检查)

c# unity3d 2d
1个回答
0
投票

创建和添加到列表很简单。

创建列表:

List<float> listOfFloats = new List<float>();

尖括号中的数据类型可以是List<Vector3>List<MyCustomClass>。重要的是,列表只能保存一种数据类型的对象或值。您可以拥有一个包含整数,字符串和布尔值的列表。

添加到列表:

listOfFloats.Add(10f);

从列表中删除:

listOfFloats.Remove(10f); // this will remove the FIRST 10f value it finds
listOfFloats.RemoveAll(10f) // this remove all 10f values

Remove方法也具有返回值是毫无价值的。他们将返回其删除的值,对象或列表。

现在,重要的是...列表可能不是解决您问题的最佳集合类型。

您正在处理一系列事件。事件是按顺序发生的,除非该顺序需要可变,否则最好使用队列。

对于队列,您始终知道队列中的第一项是添加到队列中的第一件事。因此,如果您从头到尾遍历Queue,那么您将读取内容按顺序

注意:如果您确实想知道如何记录一系列事件,并在以后的任意时间以正确的顺序和正确的时间回放事件。这是一个非常非常大的问题要回答。

© www.soinside.com 2019 - 2024. All rights reserved.