Exemplo n.º 1
0
        //[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();
        }
Exemplo n.º 2
0
 public void SetState(Transform player)
 {
     CameraStateManager.DeleteState();
     CameraStateManager.SaveState(vCam, followTarget, lookAtTarget, screenX, screenY, boxCollider);
     CameraStateManager.RestoreState(player);
 }