Для установки спавна игрока в определенной точке при переключении на другую сцену, вы можете использовать метод 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` - трансформы дверей в главной комнате, под которыми должен спавниться игрок.