//[SerializeField] private bool preloadBattleScene = true; private void Awake() { PartyManager.Order(); var member = PartyManager.Members.Single(m => m.positionInParty == 1); GameObject memberGo; if (PlayerPositionManager.Position != Vector3.zero) { memberGo = Instantiate(playerPrefab, PlayerPositionManager.Position, playerPrefab.transform.rotation); memberGo.GetComponent <Animator>().runtimeAnimatorController = member.overworldController; PlayerPositionManager.Position = Vector3.zero; vCam.Follow = memberGo.transform; vCam.LookAt = memberGo.transform; if (!doNotRestoreCamState) { CameraStateManager.RestoreState(memberGo.transform); } if (compassPro != null) { compassPro.miniMapFollow = memberGo.transform; } } else { var playerSpawners = FindObjectsOfType <PlayerSpawnArea>(); var spawnPoint = playerSpawners.SingleOrDefault(s => s.Id == PlayerPositionManager.SpawnId); if (spawnPoint != null) { var spawnPointTransform = spawnPoint.transform; if (spawnPoint.hasSpecificRotation) { SceneRotationManager.CurrentRotation = spawnPoint.Rotation; cVCamRotation.Value = spawnPoint.Rotation; } memberGo = Instantiate(playerPrefab, spawnPointTransform.position, playerPrefab.transform.rotation); memberGo.GetComponent <Animator>().runtimeAnimatorController = member.overworldController; vCam.Follow = memberGo.transform; vCam.LookAt = memberGo.transform; spawnPoint.GetComponent <CameraStateSetter>().SetState(memberGo.transform); if (compassPro != null) { compassPro.miniMapFollow = memberGo.transform; } } else { Debug.LogError("Could not locate a spawn point with the specified ID!"); } } playerSpawnEvent.Raise(); }
public void SetState(Transform player) { CameraStateManager.DeleteState(); CameraStateManager.SaveState(vCam, followTarget, lookAtTarget, screenX, screenY, boxCollider); CameraStateManager.RestoreState(player); }