你的错误是因为你缺少新关键字Vector2
When using C# you need to use the new keyword in front of all constructors. Constructors are like functions that are used to create new objects (or scructs). They always have the same name as the type of object you are creating.
所以,如果你应该写
Vector2 checkpoint = new Vector2(transform.position.x, transform.position.y +5)
代替:
Vector2 checkpoint = Vector2(transform.position.x, transform.position.y +5)
编辑:现在你编辑了你的问题没有错误,并且由于你仍然在试图找到一种能够及时回溯Unity中发生的事情的方法,我可以告诉你这个事情不存在。但是你可以自己实现它。我建议你这样的事情:
如果它是一个平台的2D游戏,像马里奥兄弟的风格,你可以在 场景,当玩家 通过他们去被激活触发器的顺序放置。
然后就可以有一个长度n
等于 多个触发器,然后一个矩阵NX2(触发器X 坐标每个触发的[X,Y]的数)boolean array
。
最初,所有的数组中的元素具有false
值,和每 触发被激活correcponding元件在 阵列变为真实时间。
当玩家死亡时,它会检查数组中的所有元素,直到其 到达最后一个真实元素(这将是最后触发的 激活)。
使用上一步的索引形式访问触发器的矩阵,并提取两个元素(x和y坐标)。然后你 使用该值:
使用脚本:
Vector2 checkpoint = new Vector2(xCoordinate, yCoordinate);
为了能够做到这一点,你就必须执行某种延时自己。创建类似于'Dictionary>'的东西,它将支持像'PositionChangeAction:ObjectAction {ActionType actionType = ActionType.PositionY; float fromValue = 3.3f,toValue = 3.45f;对象目标; }'然后每次更新后,只需将这些操作添加到该timelapse('Dictionary')。 –
我用适合您的问题的方法更新了我的答案。检查它,让我知道,如果这是你在找什么 –