你的錯誤是因爲你缺少新關鍵字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')。 –
我用適合您的問題的方法更新了我的答案。檢查它,讓我知道,如果這是你在找什麼 –