public override void OnLoad(BinaryReader stream) { GridTransform = GetComponent <GridTransform>(); GridTransform.ResetMovement(); GridTransform.position = DataLoader.Load <Vector2Int>(stream); faceTo = DataLoader.Load <Face>(stream); isKinematic = DataLoader.Load <bool>(stream); canPass = DataLoader.Load <bool>(stream); }
/// <summary> /// 刷新移动判断 /// </summary> private void UpdateMovement() { if (GridTransform.IsMoving || expectNextMoveDirection == null) { return; } faceTo = expectNextMoveDirection.Value; _currentMoveDirection = expectNextMoveDirection; var directionVector = FaceToVector(faceTo); if (!isKinematic && !CanMoveIn( GameMapManager.gameMapManager.InfoTilemap.GetTileInfo(GridTransform.position + directionVector))) { return; } GridTransform.Move(directionVector, 1 / speed); expectNextMoveDirection = null; }