Выбор точки появления в Unity3d

156
18 апреля 2022, 18:20

Пытаюсь сделать переключение места появления(transform) в одном моём проекте. Выглядеть это должно так: в главном меню игры игрок выбирает точку появления (при помощи toggle), после чего скрипт сохраняет через PlayerPrefs.SetInt число, которое обозначает номер transforma для того, чтобы получить этот инт в другой сцене. И тут у меня возникает проблема: не знаю, как сделать, чтобы в другой сцене скрипт, "принимающий" это число спавнил игрока на выбранной точке. Пробовал сделать через if, но получил ошибку, т.к. это переменная int, а не bool.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class CarLoad : MonoBehaviour
{
[SerializeField] private Transform _carPos1;
[SerializeField] private Transform _carPos2;
public GameObject _car1;
void Start()
{
    PlayerPrefs.GetInt("LocNum");
}

void Update()
{
    if (PlayerPrefs.GetInt("LocNum", 1))
    {
        Instantiate(_car1, _carPos1.position, _carPos1.rotation);
    }
}
}

Или есть какой-нибудь другой вариант?

Подскажите, как можно решить эту проблему?

Answer 1
 if (PlayerPrefs.GetInt("LocNum", 1) == 1)

А еще лучше

int locNum = PlayerPrefs.GetInt("LocNum", 1)
switch (locNum)
      {
      case 1:
          Instantiate(_car1, _carPos1.position, _carPos1.rotation);
          break;
      case 2:
          Instantiate(_car1, _carPos2.position, _carPos2.rotation);
          break;
      default:
          //Действие при невалидных данных
          Instantiate(_car1, _carPos1.position, _carPos1.rotation);
          break;
  }

И конечно Instantiate надо сделать один раз, например, в Start.

READ ALSO
В чем разница между возвращением из API-контроллера IActionResult и конкретного объекта?

В чем разница между возвращением из API-контроллера IActionResult и конкретного объекта?

Собственно, в чем разница и что лучше использовать повсеместно и в каких случаях?

170
Как сделать синхронизацию?

Как сделать синхронизацию?

Доброго времени сутокСуть такая, есть клиенты (приложения Windows) и нужно сделать на них синхронизацию данных

272
нерабочее решение через Linq c#

нерабочее решение через Linq c#

Входными данными является строка, содержащая один из символов!?;:() например: "a; fg x; x y;"

144