Как установить спавн игрока в определенной точке при переключении на другую сцену?

Как настроить размещение игрока под определенной дверью в главной комнате, при переходе из любой из двух остальных комнат?
  • 27 мая 2024 г. 16:01
Ответы на вопрос 2
Для установки спавна игрока в определенной точке при переключении на другую сцену, вы можете использовать метод SceneManager.LoadScene() в скрипте или настроить точку спавна в самой сцене.

Пример скрипта для установки спавна игрока в определенной точке при переключении на другую сцену:

```csharp
using UnityEngine;
using UnityEngine.SceneManagement;

public class SpawnManager : MonoBehaviour
{
    public Transform spawnPoint;

    void OnSceneLoaded(Scene scene, LoadSceneMode mode)
    {
        if(scene.name == "NewSceneName")
        {
            PlayerController player = FindObjectOfType<PlayerController>();
            player.transform.position = spawnPoint.position;
        }
    }

    void Start()
    {
        SceneManager.sceneLoaded += OnSceneLoaded;
    }

    void OnDestroy()
    {
        SceneManager.sceneLoaded -= OnSceneLoaded;
    }
}
```

Для настройки размещения игрока под определенной дверью в главной комнате при переходе из других комнат, вы можете использовать тот же подход со скриптом, только добавив логику определения, из какой комнаты в которую сцену происходит переход.

Пример:

```csharp
if(scene.name == "MainRoom")
{
    if(previousScene == "Room1")
    {
        player.transform.position = door1.position;
    }
    else if(previousScene == "Room2")
    {
        player.transform.position = door2.position;
    }
}
```

Где `previousScene` - имя сцены, из которой происходит переход, а `door1` и `door2` - трансформы дверей в главной комнате, под которыми должен спавниться игрок.
ну вариантов много ну самый простой 
это сделать игрока DontDestroyOnLoad, а при срабатывании сценария смены сцены( SceneManager.LoadScene("___"); ) задать игроку нужный Transform, вероятно может быть проблема с физикой если она, тогда надо сделать чек на загрузку сцены и менять трансформ уже после загрузки
Похожие вопросы