private void StoreCurrentPosition() { for (var i = 0; i < positionKeys.Length; ++i) { if (Input.GetKeyDown(positionKeys[i])) { storedPositions[i] = new StoredPosition { Position = this.transform.position, Rotation = this.transform.rotation }; break; } } SavePositionData(); }
private bool GotoStoredPosition() { for (var i = 0; i < positionKeys.Length; ++i) { if (Input.GetKeyDown(positionKeys[i])) { StoredPosition pos = GetStoredPosition(i); if (pos != null) { SetPosition(pos); return(true); } return(false); } } return(false); }
public void FixedUpdate() { if (m_timeState == TimeState.Normal) { m_movementHistory.AddFirst(new StoredPosition(transform, m_robotState)); if (m_movementHistory.Count >= 60 * 10) { m_movementHistory.RemoveLast(); } GetComponent <RobotMovement>().Move(); } else if (m_timeState == TimeState.Backward) { if (m_movementHistory.Count > 1) { StoredPosition sp = m_movementHistory.First.Value; transform.position = sp.position; transform.rotation = sp.rotation; GetComponent <RobotMovement>().SetRobotState(sp.robotState); m_movementHistory.RemoveFirst(); } } }
private void SetPosition(StoredPosition pos) { this.transform.position = pos.Position; this.transform.rotation = pos.Rotation; }