@Ad1yar

Почему зомби не меняет координаты после загрузки сохранения в Unity3D?

Почему зомби не меняет координаты после загрузки сохранения в Unity3D? Тоесть если другие объекты например те же укрепления который игрок строит во время игры то они сохраняются и держат свою позицию а с зомби так не работает
код:
public void SaveGame()
    {
        GameData gameData = new GameData();
        gameData.playerPosition = playerTransform.position;
        gameData.playerRotation = playerTransform.rotation;
        gameData.cameraRotation = cameraTransform.rotation;

        gameData.zombies = new List<ZombieData>();
        foreach (GameObject obj in prefabObjects)
        {
            if (obj.CompareTag("Zombie"))
            {
                Zombie zombieComponent = obj.GetComponent<Zombie>();
                if (zombieComponent != null)
                {
                    ZombieData zombieData = new ZombieData();
                    zombieData.name = obj.name;
                    zombieData.isAlive = zombieComponent.IsAlive;
                    gameData.zombies.Add(zombieData);
                }
            }
        }

        string jsonData = JsonUtility.ToJson(gameData);
        File.WriteAllText(savePath, jsonData);
        Debug.Log("Game data saved!");
    }

    public void LoadGame()
    {
        if (File.Exists(savePath))
        {
            string jsonData = File.ReadAllText(savePath);
            GameData gameData = JsonUtility.FromJson<GameData>(jsonData);

            playerTransform.position = gameData.playerPosition;
            playerTransform.rotation = gameData.playerRotation;
            cameraTransform.rotation = gameData.cameraRotation;

            foreach (ZombieData zombieData in gameData.zombies)
            {
                GameObject zombieObj = FindZombieByName(zombieData.name);
                if (zombieObj != null)
                {
                    Zombie zombieComponent = zombieObj.GetComponent<Zombie>();
                    if (zombieComponent != null)
                    {
                        zombieComponent.IsAlive = zombieData.isAlive;
                    }
                }
            }

            Debug.Log("Game data loaded!");
        }
        else
        {
            Debug.LogWarning("No saved game data found.");
        }
    }

    private GameObject FindZombieByName(string name)
    {
        foreach (GameObject obj in prefabObjects)
        {
            if (obj.CompareTag("Zombie") && obj.name == name)
            {
                return obj;
            }
        }
        return null;
    }
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы