Проблема запуска сцены из разных точек размещения FPSController

Доброго времени суток!
Подскажите, как нужно загружать одну и ту же сцену с разным положением игрока? Средство запуска - простейшее меню с 3 кнопками для загрузки в точку 1, точку 2 и выхода из программы (сцена меню). Я сделал статическую переменную:

using UnityEngine;
 
public static class GameStartValues
{
    public static Vector3 playerPosition;
}

в сцене меню к кнопке (к каждой) к свойству OnClick привязан пустой объект, к которому привязан скрипт (к каждой свой, например, к точке _PlayVineyard:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
 
public class PlayVineyard : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
    }
 
    // Update is called once per frame
    void Update()
    {
    }
    public void StartPlay()
    {
        Cursor.visible = false;
        GameStartValues.playerPosition = new Vector3(249.0f, 31.255f, 177.33f);
        SceneManager.LoadScene("Episod_I");      
    }
}

к точке _PlayHouse такой же, но с соответствующим именем класса и другими координатами, сцена та же.
И, наконец, в методе Start скрипта FirstPersonController к объекту FPSController (взят из стандартных ассетов, структура не менялась: FPSController -FirstPersonCharacter - Main Camera) указано:

this.transform.position = GameStartValues.playerPosition;
            Debug.Log("X = "+ this.transform.position.x.ToString());
            Debug.Log("Y = "+ this.transform.position.y.ToString());
            Debug.Log("Z = "+ this.transform.position.z.ToString());
            Debug.Log(this.name);

Выводимые в логе координаты соответствуют заданным нажатой кнопкой, имя объекта-владельца этих координат правильное - FPSController, но контроллер (персонаж) все равно стартует на том же месте, где он находится в редакторе (это третья точка, не совпадающая ни с 1, ни со 2). Что я делаю не так?

Гугл говорит, что надо

enabled = false;
transform.position = ...;
enabled = true;

https://forum.unity.com/threads/character-controller-ignores-transform-position.617107/#post-4132723

или может быть через RigidBody http://answers.unity.com/answers/1667502/view.html

:thinking: вроде бы раньше работало без этого, может быть поменяли в новых версиях.

Благодарю за ответ, вечером дома попробую (это детский школьный проект сына - помогаю, чем могу). Результат отпишу непременно.

В общем и целом: оказалось, что лечится это установкой параметра Auto Sync Transforms в Edit-Project Settings-Physics. Нужно поставить галку (т.е. true). Правда, эта установка не влияет на ориентацию объекта, пока еще не разобрался почему. В скрипте GameStartValues добавил

public static Quaternion playerRotation;

В скрипте, назначающем значения (с начальными установками):

    public float rotX = 0;
    public float rotY = -90;
    public float rotZ = 0;
 GameStartValues.playerRotation = Quaternion.Euler(rotX, rotY, rotZ);

и в контроллере в функции Start^

this.enabled = false;
            this.transform.position = GameStartValues.playerPosition;
            this.transform.rotation = GameStartValues.playerRotation;
            this.enabled = true;

Пока такие достижения. С вращением еще борюсь.