Почему зомби не меняет координаты после загрузки сохранения в 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;
}